如何通过jquery在(a)中添加(href)?

时间:2014-09-06 15:04:39

标签: javascript jquery

如何在HTML(a)中添加(URL)

var gm = document.body.innerHTML.match(/id=\d+.+على.+id=\d+/g);


for(var i=0;i<10;++i) 
window.open('/game.php?village=' + gm[i].match(/id=(\d+)/g)[0].replace("id=",'') + '&screen=place&target=' + gm[i].match(/id=(\d+)/g)[1].replace("id=",''));

HTML

<b id='ABC'>
<a id='f' href ='' >ABC1</a>
<a id='f' href ='' >ABC2</a>
<a id='f' href ='' >ABC3</a>
<a id='f' href ='' >ABC4</a>
<a id='f' href ='' >ABC5</a>
</b>

但我不想使用:=&gt; window.open

我想要像这样使用(var):

var ss = '/game.php?village=' + gm[i].match(/id=(\d+)/g)[0].replace("id=",'') + '&screen=place&target=' + gm[i].match(/id=(\d+)/g)[1].replace("id=",'');

为了添加她(href)

通过jquery或javascript

<b id='ABC'>
<a id='f' href ='' >ABC1</a>
<a id='f' href ='' >ABC2</a>
<a id='f' href ='' >ABC3</a>
<a id='f' href ='' >ABC4</a>
<a id='f' href ='' >ABC5</a>
</b>

我用这个

$("#abc ").each(function(){
$(this).find("a").attr("href",ss);

});

但错误?

怎么样? 并谢谢

3 个答案:

答案 0 :(得分:2)

  • $("#abc ").each()遍历具有id abc的元素:迭代id选择器毫无意义,因为id在文档中应该是唯一的。您应该迭代<a>元素而不是
  • 选择器区分大小写。您的HTML中的idABC,而且位于您的 选择器你正在使用abc。您应该使用正确的ID。

    $("#ABC a").each(function () {
      $(this).attr("href", ss);
    });
    

旁注:

  • 多个元素不应该具有相同的id:您应该使用a 而不是......

  • jQuery setter方法通常遍历调用它们的集合,因此除非您必须执行多个操作,否则无需手动迭代。 $("#ABC a").attr("href", ss);也会这样做。

答案 1 :(得分:-1)

$("#abc a").each(function(){
$(this).attr("href",ss);
});

你必须迭代锚标记/.

答案 2 :(得分:-1)

有两种方法可以做到这一点。

按类名:

将锚标记ID更改为CLASS,如下所示:

...
<a class='f' href ='' >ABC1</a>
...

将jQuery代码更改为:

$(".f ").attr("href",ss);

由子/父:

$("#abc").find('a').attr("href",ss);

注意:DOM元素ID应该是唯一的。没有两个元素应该具有相同的ID。您可以将同一个类分配给多个元素。