Row.cells [0] .firstChild возвращает разные значения в IE и FF.

0

У меня есть функция javascript (function toggleTree (theRow)), где строка передается этой функции из ячейки в таблице onclick.

<tr class="rowWhite"><td style="text-align:center"><img class="expand" alt="" src="images/plus.jpg"onclick="toggleTree(this.parentNode.parentNode);" /> 

Функция Toggle tree приведена ниже.

    function toggleTree(theRow)
{
var imgEl = theRow.cells[0].firstChild;
if (theRow.cells[0].firstChild.className == "expand")
{
theRow.cells[0].firstChild.className="collapse";
theRow.cells[0].firstChild.src="images/minus.jpg";
alert(theRow.cells[0].firstChild.className);
alert(theRow.cells[0].firstChild.src);
return "expand";
}
else
{
theRow.cells[0].firstChild.className="expand";
theRow.cells[0].firstChild.src="images/plus.jpg";
alert(theRow.cells[0].firstChild.className);
alert(theRow.cells[0].firstChild.src);
return "collapse";
}
} 

Значения theRow.cells [0].firstChild.className и theRow.cells [0].firstChild.src отличаются в IE и Firefox, из-за чего функция не работает в FF, но работает в IE. Как получить значения в jsfunction из любого браузера?

  • 2
    У вас должен быть пробел, который вы не показываете. также кэшировать ваши объекты и ставить пробел после конца "в src
  • 0
    Определить «другое»? Какие значения возвращаются в каждом?
Показать ещё 2 комментария
Теги:
internet-explorer
firefox
cross-browser

1 ответ

0

Вероятно, вы получаете текстовый индекс в других браузерах, чем IE

Как насчет чего-то вроде

Live Demo

window.onload=function() {
    var expImg = document.querySelectorAll("img.expand"); // for example
    console.log(expImg)
    for (var i=0;i<expImg.length;i++) {
        expImg[i].onclick=function() {  
          var exp = this.className == "expand";
          this.className=exp?"collapse":"expand";
          this.setAttribute("alt",this.className);
          this.src=exp?"images/minus.jpg":"images/plus.jpg";  
          // here you can do something with the row
        }
    }
} 
  • 0
    querySelectorAll отлично, но он не будет работать в устаревшем IE. Убедитесь, что вам не нужно поддерживать IE6 или IE7, прежде чем использовать его.
  • 0
    Даунвотер, пожалуйста, объясните голосование?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню