我有以下HTML
<div class="poster-id"> pi-1</div> 然后这个HTML
<div class="replies">
<div class=" pi-1">...</div>
<div class=" pi-2">...</div>
//etc
</div>每个页面加载的海报id并不相同,但答复内容是。
我试图在所有的回复中添加一个活动类,这些回复与海报值相匹配。
所以我在尝试
$('.replies').find('.' +$('.poster-id').text()).addClass('active');这不管用。
这确实有效。
$('.replies').find('.pi-1').addClass('active');但是海报id需要是一个变量,所以我需要使用(‘. poster’).text(),但是无论我尝试什么都不能工作。
Jquery错误吗?
谢谢你的帮助
发布于 2014-06-15 22:09:02
问题是$('.poster-id').text()包含了主要的空格字符,所以您的选择器变成了. pi-1,这与您想要的.pi-1不同( IIRC就是无效的)。
一个可能的解决方案是在将文本转换为选择器之前先对其进行.trim();也许更好的方法是使用一个属性而不是元素内容来存储“目标类”,例如:
<div id="data-poster-id-holder" data-poster-id="pi-1" />然后
var className = $("#data-poster-id-holder").attr("data-poster-id");
$('.replies').find('.' + className).addClass('active');https://stackoverflow.com/questions/24234515
复制相似问题