Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery-通过id然后通过类选择器获取元素_Jquery_Jquery Selectors - Fatal编程技术网

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

JQuery-通过id然后通过类选择器获取元素,jquery,jquery-selectors,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但这种方法不起作

我有类似的东西

<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
但这种方法不起作用。我怎么办?

你怎么办

$("#div1 span.label")
如果您使用
#div1.label
您实际上选择了一个id为
div1
的元素,并且拥有类
label

,您几乎拥有了它:

$("#div1 .label");

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


您还可以使其更加具体:

$("#div1 > .label");

选择由“父”指定的元素中由“子”指定的所有直接子元素


使用空格表示元素是子元素:

$('#div1 .label');
$('#div2 span');
$('#div2 span.label');
#div1.label
将选择id为div1和一类label的元素。

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

#div1.label或#div2.span

您的想法是错误的,在您的选择器中,您正在抓取具有div1类的div1ID。label。(这不是HTML的结构方式,也不是您要寻找的内容)

您需要这些:

$('#div1 .label');
$('#div2 .label');
中间的空格与CSS语法中的空格相同,它查找子元素,在本例中,子元素需要一个标签类(您也可以将span.label放入以获得更具体的信息)

如果您希望它更模糊,并捕获所有带有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 #

这个简单的代码为我工作
$('prettyId>label')