在 li 中获取子标记的 html 内容

Fetch html content of child tag inside li

本文关键字:html 内容 li 获取      更新时间:2023-09-26

我有一个列表,如下所示:

<ol id="id1">
<li><strong>aaa</strong><em>bbb<br />ccc</em></li>
<li><strong>111</strong><em>222<br />333</em></li>
</ol>

如何在每个<li>中获取<em>标签的 html 内容?

我尝试使用jQuery的.html()方法,但在我尝试制作的android html5应用程序上表现不一致。上面的Android 5.1能够很好地阅读,但android 4.4.2设备不显示任何内容。

请问有没有另一种获取 html 的方法?

谢谢!

var liElements = document.getElementById("id1").getElementsByTagName("li");
for(var i=0;i<liElements.length;i++){
    alert(liElements[i].getElementsByTagName("em")[0].innerHTML);
}
$('li').each(function(){
   alert($(this).find('em').html());
});

$('li em').each(function(){
   alert($(this).html());
});

使用 innerHTML:

var items = document.getElementsByTagName("li");
for(var i=0;i<items.length;i++){
    alert(items[i].getElementsByTagName("em")[0].innerHTML);
}

此代码将为您提供所需的内容:

var insideEM = $("li").children("em").html();

答案将是:222<br />333

你可以像这样获取所有 em 元素,然后迭代它们。

$(function(){
  $("ol li > em").each(function(index, element){
    var em = $(element).html();
    alert(em);
  });
});

$(function(){
  $("ol li > em").each(function(index, element){
    var em = $(element).html();
    alert(em);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<ol id="id1">
<li><strong>aaa</strong><em>bbb<br />ccc</em></li>
<li><strong>111</strong><em>222<br />333</em></li>
</ol>

当然,我认为对于香草JS来说,这是最人性化的缺点:

var $list = document.querySelectorAll("#id1 li em");
document.write("<br />");
for (i = 0; i < $list.length; i++) {
   document.write((i+1) + " match: <br />");
  
   document.write($list[i].innerHTML);
  
   document.write("<br />");
}
<ol id="id1">
<li><strong>aaa</strong><em>bbb<br />ccc</em></li>
<li><strong>111</strong><em>222<br />333</em></li>
</ol>