JQuery - 通过id获取元素,然后通过类选择器

时间:2012-09-19 14:15:27

标签: jquery jquery-selectors

我有类似的东西

<div id="div1">
   <span class="label">some text</span>
</div>
<div id="div2">
   <span class="label">some text</span>
</div>

我想通过id然后通过类选择给定的跨度。像#div1.label#div2.span之类的东西,但这种方式不起作用。我怎么样?

6 个答案:

答案 0 :(得分:11)

使用空格表示该元素是儿童:

$('#div1 .label');
$('#div2 span');
$('#div2 span.label');

#div1.label会选择id为div1且标签类的元素。

答案 1 :(得分:4)

你可以做到

$("#div1 span.label")

如果您使用#div1.label,那么您实际上是在选择ID为div1并且具有类label的元素。

答案 2 :(得分:4)

你几乎拥有它:

$("#div1 .label");

<强> Descendant Selector

  

选择作为给定祖先后代的所有元素。


你也可以使它更具体:

$("#div1 > .label");

<强> Child Selector

  

选择&#34; child&#34;指定的所有直接子元素。由&#34; parent&#34;。

指定的元素

答案 3 :(得分:1)

应该是$('#div1 .label')$('#div2 span')。您需要单独使用空间

答案 4 :(得分:1)

#div1.label或#div2.span

您认为错误,在您正在抓取的选择器中, div1 的ID与div1的标签。 (这不是HTML结构的方式,也不是你要找的东西)

你需要这些:

$('#div1 .label');
$('#div2 .label');

中间的空间与CSS语法一样,它会查找子元素,在这种情况下需要一个标签类(您也可以放入 span.label < / strong>更具特异性)

如果你想让它变得更模糊,并且用它们内部的span.label捕获所有div,你可以这样做:

$('div span.label'); // this would capture all of them
$('div[id^="div"] span.label'); // assuming they all start with the ID "div" then a #

答案 5 :(得分:0)

这个简单的代码对我有用$('#prettyId > label');