Jquery 选择具有特定元素的所有链接
我想在一些div下选择a标记 我的htmlJquery 选择具有特定元素的所有链接,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 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说得很对,完全忽略了这一点。