在DOM中访问具有相同名称的多个项目

时间:2015-05-16 14:34:48

标签: javascript jquery dom web

使用Web开发者控制台我可以从Web控制台访问特定类的第一项内容:

$(".license-box pre").text();

但是,如果有多个名为“pre”的对象是“license-box”类的成员呢?如何访问实例1,2,n等?

我不是要问如何遍历一个班级成员列表。我问如何访问列表的第N个成员,这是一个不同的问题。这不是标记帖子的副本。这是下面链接的Felix King帖子的副本,因此应该正确地重新标记以指向Felix的项目。

下面发布的解决方案:使用.eq()方法。

2 个答案:

答案 0 :(得分:1)

您可以使用.each()

遍历项目集合
$(".license-box pre").each(function() {
  console.log("this <pre> contains: " + $(this).text());
});

.each()的回调传递了索引,这可以让你做一些像只对偶数索引元素做的事情:

$(".license-box pre").each(function(index) {
  if ((index & 1) === 0)
    console.log("even <pre>: " + $(this).text());
});

如果您知道自己想要哪一个,可以使用.eq()

var third = $(".license-box pre").eq(3);

你可以在选择器本身做很多事情。如果你想对每3 <pre>做一些事情,你可以这样做:

$(".license-box pre:nth-child(3n)").each(function() {
  console.log($(this).text());
});

(当nth-child()元素是&#34; license-box&#34;容器的直接子元素时,这里的<pre>选择器是有意义的,因为语义与每个元素有关& #39; s兄弟关系。)

答案 1 :(得分:-1)

喜欢这个? .each

var res = [];

$(".license-box pre").each(function(){
    res.push($(this).text()); // or alert($(this).text());
});

console.log(res);

现在,如果您想要n个实例的文本,只需执行:

alert(res[n - 1]);