Javascript 我可以选择#id>#jQuery的id?

Javascript 我可以选择#id>#jQuery的id?,javascript,jquery,html,css-selectors,Javascript,Jquery,Html,Css Selectors,我可以用jQuery选择#id>#id吗 我有这个结构 <div id="slide1"> <div id="slide_body"> some content </div> </div> <div id="slide2"> <div id="slide_body"> some content </div> </div> 一些内容 一些内容 是否

我可以用jQuery选择#id>#id吗

我有这个结构

<div id="slide1">
    <div id="slide_body">
    some content
    </div>
</div>

<div id="slide2">
    <div id="slide_body">
    some content
    </div>
</div>

一些内容
一些内容
是否有一种方法可以使用jquery仅选择“幻灯片”主体内部的“幻灯片1”

或者是将id附加到每个body div的唯一解决方案,如

<div id="slide2">
    <div id="slide_2_slide_body">
    some content
    </div>
</div>

一些内容

不能在一个文档中使用唯一ID

此属性为元素指定名称。此名称必须是唯一的 在文件中

在您的示例中,您可以使用类“slide_body”


一些内容

然后您可以使用
#slide1.slide\u body
$(“#slide1”)。查找('.slide\u body')
ID在页面上应该是唯一的。改用类:

<div id="slide1">
    <div class="slide_body">
        some content
    </div>
</div>

一些内容

然后选择slide1.slide作为选择器。

HTML元素的id应该是唯一的。将滑体转化为类

HTML

<div id="slide1">
    <div class="slide_body">
    some content
    </div>
</div>

<div id="slide2">
    <div class="slide_body">
    some content
    </div>
</div>

您的标记无效。不能有两个ID相同的元素。因此,答案是“否”。请改用类

<div id="slide1">
    <div class="slide_body">
    some content
    </div>
</div>

<div id="slide2">
    <div class="slide_body">
    some content
    </div>
</div>

$('#slide2>.slide_body');

一些内容
一些内容
$(“#slide2>.slide_body”);

您可以这样选择,但是这是完全冗余的,因为
id
属性在页面中应该是唯一的。记住这一点,您当前的代码是无效的。您应该在需要对标识符进行分组的位置使用

<div id="slide1">
    <div class="slide_body">
        some content
    </div>
</div>

<div id="slide2">
    <div class="slide_body">
        some content
    </div>
</div>

首先,使用非唯一ID不是一个很好的决定。尽管如此,您仍可以在jQuery函数中传递上下文:


$(“幻灯片”、“幻灯片1”)
第一个问题的答案:

我可以用jQuery选择#id>#id吗

实际上,您可以使用精确的语法
$(“#slide1>#slidebody”)
字符表示直接后代,称为子选择器()。如果元素可能不是直系后代,而是嵌套在其他元素中,则会忽略
,并以
$(“#slide1#slidebody”)
结束

至于HTML代码段,大多数人都正确地提到,在不同的元素上使用相同的id是不好的,并且被认为是无效的文档

使用

$('#slide1 > #slide_body')

同样的事情也发生在我身上,我正在寻找一个解决方案,事实上,这里发表的文章中没有一篇对我有效,我发现了一些对我有效的东西($(“#container”)。find(“#child”):

var div=$('#container').find('#child4').html();
警觉组(分区);

容器:
儿童组1
儿童事务组2
儿童事务组3
儿童组4
儿童事务组5

@flem感谢你发现了这一点,我已经找到了答案。-1表示“不是很好的决定”。它是无效的,因此不是一个需要做出的决定,而是一个需要纠正的错误。解决方法是一个“错误的决定”。@flem同意这是一个错误的决定。但是你知道我们工作的所有情况吗?如果某些服务器代码和OP生成的标记不能影响这一点,该怎么办?在这种情况下,OP应该寻找解决实际问题的方法,在这种情况下,使用非唯一标识符。如果服务器代码以这种方式生成,请修复服务器代码。如果第三方组件以这种方式生成,请联系更改组件的供应商。这里没有争论。切勿使用非唯一ID。这是无效的。
<div id="slide1">
    <div class="slide_body">
        some content
    </div>
</div>

<div id="slide2">
    <div class="slide_body">
        some content
    </div>
</div>
var $slideContent = $('#slide1 .slide_body');
$('#slide1 > #slide_body')