2014-06-15 43 views
0

我有以下的HTML如何找到所有的类id与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-ID”)。文本(),但无论我尝试不工作。

Jquery错了吗?

感谢所有帮助

回答

1

的问题是,$('.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'); 
相关问题