我想在某些a tag下面选择divs
我的html
<div class='test'>
<div>
<div>
<a href='#'> bunch of stuff1 </a>
<a href='#'> bunch of stuff2 </a>
<a href='#'> bunch of stuff3 </a>
</div>
</div>
</div>我想将上面的html替换为
<div class='test'>
<div>
<div>
<a href='#' class='beam' onclick='return false;'> bunch of stuff1 </a>
<a href='#' class='beam' onclick='return false;'> bunch of stuff2 </a>
<a href='#' class='beam' onclick='return false;'> bunch of stuff3 </a>
</div>
</div>
</div>我的代码:
var texts =$('.test')
texts.children().children().find('a').each(function(){
var text = $(this).text();
$(this).replaceWith("<a href='#' class='beam' onclick='return false;'>" + text + "</a>");
})以上代码似乎不起作用。我不能更改任何html结构,也不能给出div、id或class。谢谢你的帮助!
发布于 2013-08-07 00:28:46
将代码替换为:
$('.test div div a').addClass('beam').click(function() {
return false;
});jsFiddle
发布于 2013-08-07 00:25:53
修改JS如下:
var texts = $('.test')
texts.find('a').each(function(){
$(this).addClass('beam').on('click', function(){
return false;
});
});jsFiddle可在这里获得:http://jsfiddle.net/pbwDV/
您可以进一步将texts.find('a')简化为$('.test')。
这个循环遍历您的锚,使用addClass添加类名。如果您不想使用.on('click'),我想您也可以使用.attr('onclick','return false;'),您的JS看起来如下所示:
$('.test a').each(function(){
$(this).addClass('beam').attr('onclick','return false;');
});发布于 2013-08-07 00:31:37
如果您只想添加一些属性,您也可以这样做:
$('.test a').attr({'class:beam', 'onclick':'return false;'});这里似乎已经有一些答案可以帮助您获得相同的结果,但是您不需要使用.each()循环遍历标记。
https://stackoverflow.com/questions/18092641
复制相似问题