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

Mat*_*der 13 html javascript jquery 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>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用jquery只选择#slide1里面的#slide_body?

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

<div id="slide2">
    <div id="slide_2_slide_body">
    some content
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Lar*_*bar 9

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

此属性为元素指定名称.该名称在文档中必须是唯一的.

http://www.w3.org/TR/html401/struct/global.html#h-7.5.2

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

<div id="slide1">
    <div class="slide_body">
    some content
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后你可以用#slide1 .slide_body或选择它$("#slide1").find('.slide_body')

  • 你的选择是错的.你需要一个空间. (2认同)

Gar*_*y.S 9

第一个问题的答案:

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

你可以事实上做那种确切的语法$('#slide1 > #slidebody').该>字指的直系后裔,被称为子选择器(http://api.jquery.com/child-selector/).如果元素可能不是直接后代但嵌套在其他内容中,则会省略>并最终使用$('#slide1 #slidebody').

至于HTML片段,大多数都是正确的,提到在不同的元素上具有相同的ID并且被认为是无效的文档是不好的.

http://jsfiddle.net/infiniteloops/LzFAr/


Van*_*ana 5

使用

$('#slide1 > #slide_body')
Run Code Online (Sandbox Code Playgroud)