Solved

JS: document.getElementById(var).style.display - Object needed error in IE8 only

Posted on 2010-08-21
3
552 Views
Last Modified: 2012-06-27
I'm iterating through an array of strings (ids) and passing each element of the array to a function which either hides that element by id or shows it.

 
for(var tag = 0; tag < idtagArray.length; tag++){UpdateImage( idtagArray[tag], xmlhttp.responseText);}


    function UpdateImage( usediv, data )
    {
        if( data == null || data.length <= 0 ) {
            update_value.innerText = 0;
            return;
        }
     // [A5:1][A6:1][A7:1][A8:1]
        var start       = data.indexOf( "[" + usediv + ":" ) + 2 + usediv.length ;
        var end         = data.indexOf( "]", start );
        var data_value  = data.slice( start , end ) ;
     
     if( data_value > 0 )
     {
      document.getElementById(usediv).style.display = "";
     }
     else
     {
      document.getElementById(String(usediv)).style.display = "none";
     }
    }

Open in new window


The error is with getElementById - Object Needed. This only occurs on IE8; Mozilla and Chrome are fine. I even tried casting the parameter into a string with no success.
0
Comment
Question by:Chipkin_com
  • 2
3 Comments
 
LVL 38

Expert Comment

by:Tom Beck
Comment Utility
Can you provide an example of the values of 'usediv' and 'data' as passed to UpdateImage?
0
 

Author Comment

by:Chipkin_com
Comment Utility
Yes, here is how i call the method:
var idtagArray = ["KT501-1_8","KT502-15_30","KT503-15_37","KT504-10_30","KT505-30_80","KT506-30_90","KT507-20_50","KT510-15_1440","KT512-0_1_2_3_4","KT513-30_80","KT514-0_1","KT520-0_1","KT525-0_1_2","KT526-0_1","KT527-0_9999","KT529-0_9999","KT531-0_9999","KT533-0_9999","KT535-0_250","KT536-0_9999","KT538-0_9999","KT548-0_1","KT549-0_1","KT550-102_120",
"KT551-80_98","KT552-15_37","KT553-0_30","KT554-50_90","KT555-20_50","KT565-0_10","KT566-0_20","KT567-0_30","KT568-0_50","KT569-1_10","KT570-1_10","KT571-2_10","KT572-2_10","KT573-1_20","KT574-1_30"];
for(var tag = 0; tag < idtagArray.length; tag++){UpdateImage( idtagArray[tag], xmlhttp.responseText);

Open in new window

0
 

Accepted Solution

by:
Chipkin_com earned 0 total points
Comment Utility
Figured out my problem. Not all ids in the array were present on my page. Thank you.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now