jquery 查找立即子节点

3okqufwl  于 2023-06-29  发布在  jQuery
关注(0)|答案(1)|浏览(151)

我有访问span标记的数据链接属性值为“main procedure”现在我想得到那些span元素的数据链接属性值为“procedure step”但只有直接span元素我把数字理解我想要1,3,4数字span,而不是2
我试过下面的代码
var children = $(root).find(“span[data-link='" + nodeName +”']”).eq(nodeNumber);
nodeName是数据链路属性值,例如“procedurestep”
但是它给了我所有的span元素,而不是立即的注意:-在span之间还有其他的标签,比如div、table、tr和td
var children = $(root).find(“span[data-link='" + nodeName +”']”).eq(nodeNumber);
我尝试了这段代码,但它得到了所有的span元素

fwzugrvs

fwzugrvs1#

你可以使用jquery .children()函数来过滤选择器的子元素:

var children = $(root).children("span[data-link='" + nodeName + "']").eq(nodeNumber);

或者使用child combinator >,这样你的选择器只匹配源元素的直接后代:

var children = $(root).find("> span[data-link='" + nodeName + "']").eq(nodeNumber);

出于兴趣,您还可以使用本机DOM API(即使用:scope pseudo-class

const children = document.querySelector(root).querySelectorAll(":scope > span[data-link='" + nodeName + "']").item(nodeNumber);

// Which is also equivalent to this (depending on needs):
const children = document.querySelectorAll(`${root} > span[data-link="${nodeName}"]`).item(nodeNumber);

相关问题