选择包含特定元素的所有链接

时间:2013-08-07 00:17:52

标签: jquery html

我想在某些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 idclass。谢谢你的帮助!

6 个答案:

答案 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)

用以下代码替换您的代码:

$('.test div div a').addClass('beam').click(function() {
    return false; 
});

jsFiddle

答案 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>");
    })