繁体   English   中英

div中的jQuery选择器锚点

[英]jQuery selector anchor inside div

我有以下HTML代码:

<div id="mycontainer">
   <p> title </p>
   <ul>
   <li><span>**</span><a href="...">KEY</a></li>
   </ul>
   <ul>
   ...
   </ul>
</div>

我如何获得KEY值? 换句话说,从id =“mycontainer”的div中,我将如何从第一个ul中获取元素的内容?

$("#mycontainer ul:first a").text();

在这里,有一个小提琴: http//jsfiddle.net/8tvTt/

这样的事情将实现你所追求的目标:

$("#mycontainer ul:first a").text();

这有效:

$('#mycontainer ul:eq(0) a').text();

这也有效:(更具可读性)

$('#mycontainer ul:first a').text();

用这个:

$('#mycontainer a').text();

虽然很多现有的答案都会实现您所追求的目标,但我认为您真正需要的是(或者至少您真正需要的)是对jQuery选择器DOM遍历的熟悉程度。

很多人似乎都假设你想要链接元素的内部文本,我不确定是这种情况。 如果没有提供此标记的变体而不关心选择器的速度,任何数量的答案都可以做你想要的,包括像$('a').text();那样愚蠢的东西.text $('a').text(); 因为它是你提供的标记中唯一的a 我们只能猜测情况。 了解每个答案的工作原理(以及为什么不成功的答案不起作用)以及原因更为有用。

选择器的特殊性是可取的,但是您必须权衡通过DOM实际成本高昂的成本和收益。 你会一直得到一个链接的文字内容吗? 它可能包含html吗? 你真的想要包装<a>吗?

如果你只是想唯一的文字内容a内部#mycontainer ,确保:

$("#mycontainer ul:first a").text();

但是$('#mycontainer').find('a').text(); 可能会更快。 (等等, find()什么find() ?,你问,为什么它会更快?)但是如果KEY的格式<strong> ,那么你想要将它继续用于你正在做的事情吗? 您可能希望使用.html()代替。 如果你想要a自己,为什么不:

$("#mycontainer ul:first a");

但是,如果每个lia?

$("#mycontainer ul:first li:first a").clone();

你也想要跨度吗?

$("#mycontainer ul:first li:first").clone();

要么

$("#mycontainer ul:first li:first").html();

你想要包装<li>吗?

$("#mycontainer ul:first li:first").clone();

四处游玩,阅读更多,然后你不会让所有人(包括我自己)如此贪婪地为一些愚蠢,轻松的代表。

你需要读取jquery选择器...但是使用它

$('#mycontainer ul:first a').text();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM