1

我想选择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 结构,也无法提供那些 dividclass. 谢谢您的帮助!

4

6 回答 6

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;');
});
于 2013-08-07T00:25:53.940 回答
1

用这个替换你的代码:

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

jsFiddle

于 2013-08-07T00:28:46.350 回答
1

如果您只想添加一些属性,也可以执行以下操作:

$('.test a').attr({'class:beam', 'onclick':'return false;'});

似乎这里已经有一些答案可以帮助您获得相同的结果,但是您不需要使用 .each() 遍历标签来做到这一点。

于 2013-08-07T00:31:37.153 回答
1

尝试以下操作:

$('.test>div>div>a').each(function(){
  var txt = $(this).text();
  $('.test>div>div').html("<a href='#' class='beam' onclick='return false;'>"+txt+'</a>');
});
于 2013-08-07T00:35:20.787 回答
0
$('.test a').click(function(){
    return false; 
});

这与上面相同,但在 jQuery 中完成。

于 2013-08-07T00:20:53.043 回答
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>");
    })
于 2013-08-07T00:21:45.420 回答