Javascript DOMParser

У меня трудное время, чтобы перебрать xmlDoc, любая помощь будет признательна. Вот мой оригинальный HTML

<ul class="overview">
    <li class="item first odd">Li content 1</li>
    <li class="item even">li content 2</li>
     ......
     //I have a total of 16 LIs in here
    <li class="item last even">li content last 16</li>        
</ul>

Вот мой JavaScript:

<script>
    var myHtmlContent = jQuery( "ul.overview" ).html();
    var xmlDoc = new DOMParser().parseFromString(myHtmlContent , "text/html");
    var root = xmlDoc.getElementsByTagName ("li");
    var len = root.length;
    alert(len); // I get the right number  
    if( len > 8 ) { 
      for(var i=0; i<len; i++){
        var myCurrentLiContent = root[i].childNodes[0].nodeValue; 
        alert(myCurrentLiContent ); 
        /*
        My goal is to get the whole text like this "<li class="item 
        first odd">Li content 1</li>" so I can mannualy render later on, 
        but I get nothing from  myCurrentLiContent variable... 
        So please help.
        */
      }
    }
</script>

3 ответа

Ах!! Я нашел решение, которое работает для меня. Вместо этого

<script>     
   ....
  var myCurrentLiContent = root[i].childNodes[0].nodeValue, 
  ....
</script>     

Все, что мне нужно сделать, это

<script>
    .... 
    var myCurrentLiContent = root[i].innerHtml
    ....
</script>

Спасибо за вашу помощь, и все они ценны для меня. Спасибо!!!

Вы получили len равным 3, но вы проверяете, превышает ли len значение 8. Это не так, поэтому ваш код не выполняется. Удалите оператор if и код будет работать нормально.

<ul class="overview">
...
var myHtmlContent = jQuery( "ul.overview" ).html();

в этом случае, myHtmlContent это список, а не узел. Сделай это id="overview" а также jQuery('ul#overview') (возможно) исправить это. Лучше всего их диагностировать с помощью отладчика с переменными наблюдателями или, по крайней мере, щедрым console.log() заявления, а не пытаться отделить его от полной капли позже.

Другие вопросы по тегам