Jquery 选择具有特定元素的所有链接

Jquery 选择具有特定元素的所有链接,jquery,html,Jquery,Html,我想在一些div下选择a标记 我的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下选择a标记

我的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或类。谢谢你的帮助

$('.test a').click(function(){
    return false; 
});
这与上面相同,但在jQuery中完成

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

只需删除.children.children

把孩子们拿走


按如下方式修改您的JS:

var texts = $('.test')

texts.find('a').each(function(){
  $(this).addClass('beam').on('click', function(){
    return false;
  });
});
JSFIDLE可在以下位置获得:

您可以进一步简化文本。找到“$”到“.test”

这将循环通过锚点,使用addClass添加类名。如果您不想使用.on'click',我想您也可以使用.attr'onclick',return false;'你的JS看起来像这样:

$('.test a').each(function(){
  $(this).addClass('beam').attr('onclick','return false;');
});

按如下方式修改您的JS:

var texts = $('.test')

texts.find('a').each(function(){
  $(this).addClass('beam').on('click', function(){
    return false;
  });
});
JSFIDLE可在以下位置获得:

您可以进一步简化文本。找到“$”到“.test”

这将循环通过锚点,使用addClass添加类名。如果您不想使用.on'click',我想您也可以使用.attr'onclick',return false;'你的JS看起来像这样:

$('.test a').each(function(){
  $(this).addClass('beam').attr('onclick','return false;');
});

将代码替换为以下内容:

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

将代码替换为以下内容:

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

如果您只想添加一些属性,也可以这样做:

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

这里似乎已经有一些答案可以帮助您实现相同的结果,但您不需要使用每个来循环标记。

如果您只想添加一些属性,您也可以这样做:

$('.test a').attr({'class:beam', 'onclick':'return false;'});
这里似乎已经有一些答案可以帮助您实现相同的结果,但您不需要通过标记循环。每个标记都可以做到这一点。

尝试以下方法:

$('.test>div>div>a').each(function(){
  var txt = $(this).text();
  $('.test>div>div').html("<a href='#' class='beam' onclick='return false;'>"+txt+'</a>');
});
请尝试以下操作:

$('.test>div>div>a').each(function(){
  var txt = $(this).text();
  $('.test>div>div').html("<a href='#' class='beam' onclick='return false;'>"+txt+'</a>');
});

这并没有像OP想要的那样添加“beam”类。@BrianRogers说得很对,完全忽略了这一点。这并没有像OP想要的那样添加“beam”类。@BrianRogers说得很对,完全忽略了这一点。