我有以下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获取元素的内容?
答案 0 :(得分:10)
$("#mycontainer ul:first a").text();
在这里,有一个小提琴:http://jsfiddle.net/8tvTt/
答案 1 :(得分:2)
这样的事情将实现你所追求的目标:
$("#mycontainer ul:first a").text();
答案 2 :(得分:1)
这有效:
$('#mycontainer ul:eq(0) a').text();
这也有效:(更具可读性)
$('#mycontainer ul:first a').text();
答案 3 :(得分:1)
使用此:
$('#mycontainer a').text();
答案 4 :(得分:1)
虽然很多现有的答案都会实现您所追求的目标,但我认为您真正要求的(或至少您真正需要的)是对jQuery selectors和{{3}的熟悉程度}。
很多人似乎都假设你想要链接元素的内部文本,我不确定是这种情况。如果不提供此标记的变体而不考虑选择器的速度,任何数量的答案都可以达到您想要的效果,包括与$('a').text();
一样愚蠢的东西,因为它是您提供的标记中唯一的a
。我们只能猜测情况。了解每个答案的工作方式(以及为什么不成功的答案不起作用)以及为什么会更有帮助。
选择器的特异性是可取的,但是您必须权衡通过DOM实际成本高昂的成本和收益。你会一直得到一个链接的文字内容吗?它可能包含html吗?你真的想要包装<a>
吗?
如果您只想要a
内#mycontainer
的文字内容,请确定:
$("#mycontainer ul:first a").text();
但$('#mycontainer').find('a').text();
可能会更快。 (等等,什么是find()
?,你问,为什么它会更快?)但是如果KEY被格式化<strong>
,你想要将它带到你正在做的任何事情上怎么办?您可能希望使用.html()
代替。如果您想要a
本身,为什么不:
$("#mycontainer ul:first a");
但是,如果每个li
都有a?
$("#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();
四处游玩,阅读更多,然后你不会让所有人(包括我自己)对一些愚蠢的,轻松的代表如此贪婪。
答案 5 :(得分:0)
您需要读取jquery选择器...但使用此
$('#mycontainer ul:first a').text();