Javascript 如何使用jquery查找深入嵌入的子项

Javascript 如何使用jquery查找深入嵌入的子项,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一个如下所示的dom树: <div class="specs> <ul> <li> <a></a> </li> <li> <a></a> </li> </div> 谢谢 你可以这样写: $('.specs ul li a').attr('target', '_blank'); <div cl

我有一个如下所示的dom树:

<div class="specs> 
  <ul>
    <li>
      <a></a>
    </li>
    <li>
      <a></a>
    </li>
</div>

谢谢

你可以这样写:

$('.specs ul li a').attr('target', '_blank');
<div class="specs"> 
  <ul>
    <li>
      <a></a>
    </li>
    <li>
      <a></a>
    </li>
  </ul>
</div>
但是不要忘记修复HTML代码(引号和缺少的结束标记)

HTML应该是这样的:

$('.specs ul li a').attr('target', '_blank');
<div class="specs"> 
  <ul>
    <li>
      <a></a>
    </li>
    <li>
      <a></a>
    </li>
  </ul>
</div>


您可以这样写:

$('.specs ul li a').attr('target', '_blank');
<div class="specs"> 
  <ul>
    <li>
      <a></a>
    </li>
    <li>
      <a></a>
    </li>
  </ul>
</div>
但是不要忘记修复HTML代码(引号和缺少的结束标记)

HTML应该是这样的:

$('.specs ul li a').attr('target', '_blank');
<div class="specs"> 
  <ul>
    <li>
      <a></a>
    </li>
    <li>
      <a></a>
    </li>
  </ul>
</div>


您的代码有一些问题。首先,HTML中的
specs
元素缺少一个结束
,其次,列表末尾缺少一个结束
,最后,jQuery代码指向的是一个您提供的HTML中不存在的ID

$(函数(){
$('.specs>ul>li')。子项('a')。每个(函数(){
$(this.attr('target','u blank');
});
});

  • 试验
  • 测试2

您的代码存在一些问题。首先,您在HTML中的
规范
元素缺少一个结束
,接下来,您在列表末尾缺少一个结束
,最后,您的jQuery代码针对的是您提供的HTML中不存在的ID

$(函数(){
$('.specs>ul>li')。子项('a')。每个(函数(){
$(this.attr('target','u blank');
});
});

  • 试验
  • 测试2

您希望在
#specs容器中有锚定标记。specs
还是仅在列表中有锚定标记?您在选择器中使用了一个ID,但元素没有ID。此外,HTML中的类名后缺少引号,并且缺少
。。。因此,在这些更改之后,您的代码可以正常工作。您不需要
.each()
。当您对集合调用
.attr()
时,它会对集合中的所有项执行此操作。您不需要调用
.children()
,只需将
>a
添加到选择器中。您应该真正了解到,存在一个将在特定元素下获取所有
a
的标记。您希望在
#specs container.specs中添加锚定标记,还是仅在列表中添加锚定标记?您在选择器中使用了一个ID,但该元素也没有ID,HTML中的类名后面缺少一个引号,您缺少一个
。。。因此,在这些更改之后,您的代码可以正常工作。您不需要
.each()
。当您对集合调用
.attr()
时,它会对集合中的所有项执行此操作。您不需要调用
.children()
,只需将
>a
添加到选择器中。您应该真正了解到,存在一个将在特定元素下获取所有
a
的元素。请参见@Barmart的注释。这不是我,但可能是因为
每个
:)和
$('.specs>ul>li')。可以直接编写儿童('a')
$(“.specs>ul>li>a”)
来自@Barmar的评论与我的答案不相关。OP没有问他们如何编写函数,他们问他们的特定代码有什么问题,这就是这个答案所解决的问题。这是你的观点……我的观点是,你不应该在可能的情况下继续使用低效的代码。看@Barmart的评论这不是我,而是我可能是因为
each
:)和
$('.specs>ul>li')。孩子('a')
可以直接写
$('.specs>ul>li>a')
。@Barmar的评论与我的答案不相关。OP没有问他们还有什么其他方法可以写这个函数,他们问他们的特定代码有什么问题,这就是这个答案的地址。这是你的观点。。。我的观点是,如果可能的话,你不应该让低效的代码永久化。