jQuery:find all<;a>;并修改它们,可能缺少';这';在某处

jQuery:find all<;a>;并修改它们,可能缺少';这';在某处,jquery,selector,Jquery,Selector,基本上,我需要找到网站中的每个元素,其中有一个特定的节点值。向每个节点添加一个.roll类,并在节点内部添加一个新类 下面是一个我想做的事情和错误的例子: HTML: JS: //向每个元素添加.red $('a').addClass('red'); //在找到的每个元素中添加一个子元素,但使用当前的html(); $('a').html(“+$('a').html()+”); //为什么所有链接都有“链接1”而不是“链接1…2…3…4”?-----> 结果: link 1 link 1 li

基本上,我需要找到网站中的每个元素,其中有一个特定的节点值。向每个节点添加一个.roll类,并在节点内部添加一个新类

下面是一个我想做的事情和错误的例子:

HTML:

JS:

//向每个元素添加.red
$('a').addClass('red');
//在找到的每个元素中添加一个子元素,但使用当前的html();
$('a').html(“+$('a').html()+”);
//为什么所有链接都有“链接1”而不是“链接1…2…3…4”?----->
结果:
link 1 link 1 link 1 link 1

您可以使用
每个
对每个元素应用一些代码,但最直接的方法是将回调传递给
html

$('a').html(function(_,h){
     return '<span data-title="'+$(this).text()+'">'+h+'</span>';
});
$('a').html(函数(h,h){
返回“+h+”;
});

您可以使用
每个
对每个元素应用一些代码,但最直接的方法是将回调传递给
html

$('a').html(function(_,h){
     return '<span data-title="'+$(this).text()+'">'+h+'</span>';
});
$('a').html(函数(h,h){
返回“+h+”;
});

+1但你为什么说它是最好的?每个循环都应该是fasterIt最直接的解决方案。我不明白为什么使用
每个
都会更快,它做的事情是一样的。@hungerpain回调需要两个参数。第一个,这里没有用到,是索引。我习惯于通过调用
\uuu
来表明参数没有被使用。我可以叫它
I
,那只是个名字。它还提醒您在其他一些语言中使用了
\uuucode>占位符。@hungerpain使用直接提供的
h
参数比使用
$(this.html()
@dystroy)要快得多(而且简单得多),在这种情况下,html()更快,我的错。+1但您为什么说它是最好的呢?每个循环都应该是fasterIt最直接的解决方案。我不明白为什么使用
每个
都会更快,它做的事情是一样的。@hungerpain回调需要两个参数。第一个,这里没有用到,是索引。我习惯于通过调用
\uuu
来表明参数没有被使用。我可以叫它
I
,那只是个名字。它还提醒您在其他一些语言中使用了
\uuucode>占位符。@hungerpain使用直接提供的
h
参数比使用
$(this).html()
@dystroy刚才选中的占位符快得多(而且简单),在这种情况下,html()更快,我的错。
// add .red to each <a> element
$('a').addClass('red');
// add a new <span> child into each found <a> element, but with the current <a>'s html();
$('a').html("<span data-title="+$('a').text()+">"+$('a').html()+"</span>");

// Why does all of the links have 'link 1' instead of 'link 1...2...3...4' ? ---->
$('a').html(function(_,h){
     return '<span data-title="'+$(this).text()+'">'+h+'</span>';
});