我在一个具有相同 id 的“hrefCompare”的页面上有几个锚标记。我需要在所有这些 a 标签上动态设置 href 属性的值。
我目前正在尝试这样做:
$("#hrefCompare").attr("href", "foobar.com");
但是,这只会设置具有该 ID 的第一个锚标记。此页面上还有 7 个具有相同 id 的“hrefCompare”。如何使用该 ID 设置所有 href 值?
我在一个具有相同 id 的“hrefCompare”的页面上有几个锚标记。我需要在所有这些 a 标签上动态设置 href 属性的值。
我目前正在尝试这样做:
$("#hrefCompare").attr("href", "foobar.com");
但是,这只会设置具有该 ID 的第一个锚标记。此页面上还有 7 个具有相同 id 的“hrefCompare”。如何使用该 ID 设置所有 href 值?
id
必须是唯一的,在这种情况下,我建议您使用class
,它应该可以完美地工作:
$(".hrefCompare").attr("href", "foobar.com");
<a href="#" class="hrefCompare">a</b>
<a href="#" class="hrefCompare">b</b>
ID 在 DOM 中必须是唯一的。尝试使用类名并使用 jquery 每个函数
$('a').each(function(k,v){
$(v).attr('href','mylink');
});
您不能使用ID来执行此操作(它们是唯一的),请尝试对您想要的所有元素使用相同的css
类(如果该类不存在则无关紧要) 。
HTML:
<a href="javascript:void(0);" class="hrefCompare">text1</a>
<a href="javascript:void(0);" class="hrefCompare">text2</a>
请避免使用#
inhref
属性(如果您关心行为)。阅读本文以了解原因: 我应该为 JavaScript 链接使用哪个“href”值,“#”还是“javascript:void(0)”?
然后:
对于旧jQuery
版本使用,.attr(..)
否则使用.prop(..)
$('.hrefCompare').prop('href', 'http://www.foobar.com');
最后:
1)要将相同的属性分配给元素url
的每个href
属性anchor
,请执行以下操作:
$('.hrefCompare').map(function(i, v){ return $(this).prop('href', 'http://www.foobar.com'); });
2)要根据它们的位置分配不同urls
的每个href
属性(如- 从零开始 - ),请执行以下操作:anchors
array
$('.hrefCompare').map(function(i, v){
if(i === 0) url = 'http://www.stackoverflow.com';
if(i === 1) url = 'http://www.foobar.com';
return $(this).prop('href', url);
});
用这种方式...
首先 anchor
,位置0:(text1 => 如果单击 => 将重定向到stackoverflow
)
第二 anchor
,位置1:(text2 =>如果点击=>将重定向到foobar
)