首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取所有的LI UL元素ID值并将它们放置在JavaScript数组中?

如何获取所有的LI UL元素ID值并将它们放置在JavaScript数组中?
EN

Stack Overflow用户
提问于 2015-12-21 08:29:54
回答 4查看 3.8K关注 0票数 1

我必须在我的网站上嵌入一些跟踪代码。因此,我有一个带有ID值的LI元素列表,我想把它放在代码片段的数组中。它们应该是数字,例如,123,456等。我想用纯JavaScript做这件事。

这是我试过的密码。我的HTML:

代码语言:javascript
复制
<ul id="itemGrid">  
    <li class="item" id="1080">  product code </li>
    <li class="item" id="1487">  product code </li>    
    <li class="item" id="1488">  product code </li>
    ...
</ul>

这是JavaScript代码

代码语言:javascript
复制
// Get all LI items and get the ID of them in the object viewList
var catId = document.getElementById('itemGrid').getElementsByTagName('li');

window.criteo_q = window.criteo_q || [];
    window.criteo_q.push(
        // SHOULD BE LIKE THIS
        // { event: "viewList", item: ["First item id", "Second item id", "Third item id"] }
        // My actual code
        { event: "viewList", item: [ catId[].id ] }
);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-12-21 08:37:08

可以使用querySelectorAll选择作为选择器传递的所有匹配元素。

选择器'#itemGrid li[id]'将选择#itemGrid元素中具有id属性的所有id元素。

querySelectorAll返回一个HTML集合。迭代这个集合以获得单个元素id。

代码语言:javascript
复制
var lis = document.querySelectorAll('#itemGrid li[id]');

var arr = [];
for (var i = 0; i < lis.length; i++) {
  arr.push(+lis[i].id);
}

console.log(arr);
document.write('<pre>' + JSON.stringify(arr, 0, 4) + '</pre>');
代码语言:javascript
复制
<ul id="itemGrid">
  <li class="item" id="1080">1080</li>
  <li class="item" id="1487">1487</li>
  <li class="item" id="1488">1488</li>
</ul>
<hr />

票数 1
EN

Stack Overflow用户

发布于 2015-12-21 08:32:12

尝尝这个

代码语言:javascript
复制
var lis = document.getElementById('itemGrid').getElementsByTagName('li');
var idArray = [];
for ( var counter = 0; counter < lis.length; counter++)
{
   idArray.push( lis[ counter ].id );
}
console.log( idArray );
票数 3
EN

Stack Overflow用户

发布于 2015-12-21 08:34:04

您可以通过传递HTMLCollection将您的slice转换为数组,然后可以对该数组进行map

代码语言:javascript
复制
catId = Array.prototype.slice.call(catId).map(function(li) { return li.id; });

代码语言:javascript
复制
var catId = document.getElementById('itemGrid').getElementsByTagName('li');
catId = Array.prototype.slice.call(catId).map(function(li) { return li.id; });

document.write(catId);
代码语言:javascript
复制
<ul id="itemGrid">  
    <li class="item" id="1080">  product code </li>
    <li class="item" id="1487">  product code </li>    
    <li class="item" id="1488">  product code </li>
</ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34391560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档