为什么不传递jQuery处理id和选择器?

时间:2012-04-29 09:55:27

标签: javascript jquery

我有一个身份"#post0"

和一个班级"reply"

当我这样做时:

 var rep = ".reply";
 $(rep).toggle(400);

所有具有“回复”类别的组件切换。

然而,当我这样做时:

var rep = "#post0.reply";
$(rep).toggle(400);

带有类回复和post0的元素没有任何反应......而不是切换它们

非常感谢帮助!

3 个答案:

答案 0 :(得分:3)

获取“回复”类的所有元素

$(".reply")

示例:

<span class="reply">match</span>

返回id为“post0”的所有元素并且具有“回复”类。请注意,选择器之间没有空格。元素只有在具有所有“链式”选择器时才匹配

$("#post0.reply")

示例:

<span id="post0" class="reply">match</span>

返回所有具有“回复”类的元素,该类是id为“post0”的元素的后代,请注意选择器之间是否存在空格

$("#post0 .reply")

示例:

<div id="post0">
    <span class="reply">span match</span>
</div>

答案 1 :(得分:2)

$("#post0.reply")返回标识为post0和类reply的元素。

$(".reply")返回具有类reply的元素。

$("#post0 .reply")返回类reply的元素,这些元素嵌套在ID为post0的元素下。

答案 2 :(得分:0)

以下JSFiddle对我有用:

http://jsfiddle.net/9V7v8/

当你说你的元素ID是“#post0”时;是ID字段中实际的哈希?尝试从id字段中删除哈希值;这样:

<p id="#post0"...

变为:

<p id="post0"...

将#前缀保留在javascript的ID中;这告诉JQuery它正在寻找一个ID;所以选择器应该仍然是:

var rep = "#post0.reply";