我想在某些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
。谢谢你的帮助!
答案 0 :(得分:1)
按如下方式修改您的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;');
});
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您只是想添加一些属性,您也可以这样做:
$('.test a').attr({'class:beam', 'onclick':'return false;'});
似乎已经有一些答案可以帮助你获得相同的结果,但你不需要使用.each()循环标记来完成它。
答案 3 :(得分:1)
尝试以下方法:
$('.test>div>div>a').each(function(){
var txt = $(this).text();
$('.test>div>div').html("<a href='#' class='beam' onclick='return false;'>"+txt+'</a>');
});
答案 4 :(得分:0)
$('.test a').click(function(){
return false;
});
这与上面相同,但是在jQuery中完成。
答案 5 :(得分:0)
只需删除.children().children()
var texts =$('.test')
texts.find('a').each(function(){
var text = $(this).text();
$(this).replaceWith("<a href='#' class='beam' onclick='return false;'>" + text + "</a>");
})