Javascript regex+;jquery-修改文本 单击一个 单击两个 单击三个 $(“.click”).live('click',function(){ $(“a”).attr('href',$(“a”).attr('href')。替换(/\d*$/,$(this.attr('id')); });

Javascript regex+;jquery-修改文本 单击一个 单击两个 单击三个 $(“.click”).live('click',function(){ $(“a”).attr('href',$(“a”).attr('href')。替换(/\d*$/,$(this.attr('id')); });,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,如果我单击,例如单击一个,则链接为: <span id="one"><a id="google" href="google.com/">link1</a></span> <br /> <span id="two"><a id="yahoo" href="yahoo.com/">link2</a></span> <br /> <br /> <span clas

如果我单击,例如单击一个,则链接为:

<span id="one"><a id="google" href="google.com/">link1</a></span> <br />
<span id="two"><a id="yahoo" href="yahoo.com/">link2</a></span>

<br />
<br />
<span class="click" id=1>click one</span> <br />
<span class="click" id=2>click two</span> <br />
<span class="click" id=3>click three</span> <br />

$(".click").live('click', function() {    
   $("a").attr('href', $("a").attr('href').replace(/\d*$/, $(this).attr('id')));
});

而不是:

<span id="one"><a id="google" href="google.com/1">link1</a></span> <br />
<span id="two"><a id="yahoo" href="google.com/1">link2</a></span>

现场示例:

我如何修复它?

这是工作示例

这是工作样品

您使用的是
$(“a”)
而不是
$(this)

您使用的是
$(“a”)
而不是
$(this)

欢呼^^


cheel^^

原因是当您单击一个元素时,它会替换所有元素上的值。试试这个:

$(".click").live('click', function() {
    var id = $(this).attr('id');
    $("a").each(function() {
        $(this).attr('href', $(this).attr('href').replace(/\d*$/, id));
    });
});



单击一个
单击两个
单击三个
$(“.click”).live('click',function(){ var$this=$(this); $。每个(“a”,函数(索引,元素){ $(element.attr('href',$(element.attr('href')。替换(/\d*$/,$this.attr('id')); }); });
原因是,当您单击其中一个时,它会替换所有a元素上的值。试试这个:

$(".click").live('click', function() {
    var id = $(this).attr('id');
    $("a").each(function() {
        $(this).attr('href', $(this).attr('href').replace(/\d*$/, id));
    });
});



单击一个
单击两个
单击三个
$(“.click”).live('click',function(){ var$this=$(this); $。每个(“a”,函数(索引,元素){ $(element.attr('href',$(element.attr('href')。替换(/\d*$/,$this.attr('id')); }); });
$(".click").live('click', function() {    
   $(this).attr('href', $(this).attr('href').replace(/\d*$/, $(this).attr('id')));
});
$(".click").live('click', function() {
    var id = $(this).attr('id');
    $("a").each(function() {
        $(this).attr('href', $(this).attr('href').replace(/\d*$/, id));
    });
});
<span id="one"><a id="google" href="google.com/">link1</a></span> <br />
<span id="two"><a id="yahoo" href="yahoo.com/">link2</a></span>

<br />
<br />
<span class="click" id=1>click one</span> <br />
<span class="click" id=2>click two</span> <br />
<span class="click" id=3>click three</span> <br />

$(".click").live('click', function() {    
    var $this = $(this);
    $.each("a", function(index, element) {
              $(element).attr('href',            $(element).attr('href').replace(/\d*$/, $this.attr('id')));
    });

});