使用 JavaScript 获取多元素 Li
get multiple element li with javascript
我需要从HTML代码中获取多个li的所有值。
<div class="row">
<div style="margin-left:11px">
<strong>Detail Product</strong>
</div>
<div class="col-sm-12">
<ul class="item-highlights">
<li>4G LTE</li>
<li>Dual Sim</li>
<li>RAM 1GB</li>
</ul>
</div>
<div class="col-sm-12">
<ul class="item-highlights">
<li>ROM 8GB</li>
<li>Screen 5.5</li>
<li>Warranty 1 Year</li>
</ul>
</div>
这就是我如何使用javascript:
var test = document.getElementById('block-system-main').getElementsByClassName('item-highlights item-highlights')[0].innerHTML;
我得到了答案:
<li>4G LTE</li><li>Dual Sim</li><li>RAM 1GB</li>
这是一个易于理解的答案。
var items = document.querySelectorAll( ".item-highlights li");
var values = [];
for( var n = 0; n < items.length; n++)
values.push( items[n].innerHTML);
如果您知道css,那么将调用更改为"querySelectorAll"很简单,因为它只是通过与css相同的方式比较事物,因此您可以随心所欲地更改它。
扩展@Tushar注释:
var test = '';
[].forEach.call( document.querySelectorAll('#block-system-main .item-highlights'), function(item) { return test += item.innerText; })
检查演示 - 小提琴。
您应该
能够使用 querySelectorAll
选择每个li
,然后map
这些值。它看起来像这样:
var listItems = Array.prototype.slice.call(document.querySelectorAll('li'));
var vals = listItems.map(function (item) {
return item.innerHTML;
});
例:http://jsbin.com/zumewidoyo/edit?html,js,console
如果你想选择每个li元素,你可以做这样的事情:
实时预览
.HTML
<div class="row">
<div style="margin-left:11px">
<strong>Detail Product</strong>
</div>
<div class="col-sm-12">
<ul class="item-highlights">
<li>4G LTE</li>
<li>Dual Sim</li>
<li>RAM 1GB</li>
</ul>
</div>
<div class="col-sm-12">
<ul class="item-highlights">
<li>ROM 8GB</li>
<li>Screen 5.5</li>
<li>Warranty 1 Year</li>
</ul>
</div>
JavaScript
//store the list elements
var lists = document.getElementsByTagName('li');
//array to hold the li elements
var liElements = [];
//loop through the lists
for (var i = 0; i < lists.length; i++) {
//add the li element values to the array
liElements.push(lists[i].innerHTML);
}
//show the results
alert(liElements.join("'n"));
函数 getElementsByClassName 返回一个数组。只需迭代它,而不是使用"[0]"来仅获取第一个元素。
function getValue() {
var test = document.getElementById('block-system-main').getElementsByClassName('item-highlights');
var array = [];
for (var i = 0; i < test.length; i++) {
var liList = test[i].getElementsByTagName('li');
for (var j = 0; j < liList.length; j++)
array.push(liList[j].innerHTML);
}
return array;
}
alert(getValue());
<div id="block-system-main">
<div class="row">
<div style="margin-left:11px">
<strong>Detail Product</strong>
</div>
<div class="col-sm-12">
<ul class="item-highlights">
<li>4G LTE</li>
<li>Dual Sim</li>
<li>RAM 1GB</li>
</ul>
</div>
<div class="col-sm-12">
<ul class="item-highlights">
<li>ROM 8GB</li>
<li>Screen 5.5</li>
<li>Warranty 1 Year</li>
</ul>
</div>
</div>
</div>
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 完全可链接的li元素
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 使用li元素的html内容更改该元素的背景
- 需要在量角器中找到使用ng中继器的li元素的数量
- 根据输入值创建li元素
- 要更改变量的高度li元素
- 为li元素添加标题
- 在不使用sort()的情况下获取HTML LI元素的副本
- 自动完成搜索无法正常工作,请不要迭代$中的所有元素.每个ul-li都会及时显示响应
- 将内容从 JSON 数组附加到 li 元素
- 使用 JavaScript 获取多元素 Li
- 灯箱“下一个”功能仍然显示已隐藏的元素 (li) 显示:无;
- 如何在嵌套列表中获取父元素li的值
- jQuery在父元素li的子元素ul中都没有得到元素
- 如果父元素li有class,将class附加到子元素
- 切换多个元素(li),除了被单击的元素
- 如何在Asp.Net中更改html元素(li)类
- 通过调整元素(li)的大小's边缘
- jQuery从数组中设置元素li数据