我想了很多关于更好标题的内容,但是......是的,有些人没有描述我的问题。
我有以下代码:
<div id="chatrooms">
<div class="chatroom active" id="all">all</div>
<div class="chatroom" id="245332"></div>
</div>
请注意,我使用的是&#34; chatrooms&#34;和&#34;聊天室&#34; - 所以不要混淆
$(document).on('click', ".chatroom", function(e){
var id = e.target.id;
$('.active').removeClass('active');
$('.chatrooms > .chatroom#' + id).addClass('active'); //doesn't work
$('.chatrooms').children('#' + id).addClass('active'); //doesn't work
$(this).addClass('active'); //works
});
所以这三种方法中只有一种有效,但我至少需要一种不能工作的方法,因为我有多个div&#34; .chatrooms&#34;与id。我希望你能帮帮我!谢谢你的时间!
答案 0 :(得分:3)
如果我读得正确,chatrooms
是你的div,而不是上课。所以jQuery选择器应该是#chatrooms
而不是.chatrooms
。
答案 1 :(得分:0)
这里有一些问题。首先,您正试图定位您的聊天室&#39; ID为.chatrooms
。 jQuery使用CSS选择器来定位元素,因此定位ID的正确格式为#chatrooms
。
接下来,您正在使用&#39; .chatrooms > .chatroom#
&#39;这意味着&#34;定位chatroom#
的 CLASS 所有元素,这些元素是所有元素的直接(第一级)子元素,其中{strong> CLASS 为{{ 1}}#&34;
由于您没有chatrooms
的 CLASS 的任何元素,您也没有任何 CLASS {{1}的元素要找到孩子,你的结果将是空的。
您可以在http://www.w3schools.com/cssref/css_selectors.asp或这个精彩的网站http://flukeout.github.io上了解CSS选择器
你应该从那里开始,然后回到jQuery。