jQuery不会保留修改后的锚标记href属性

时间:2012-05-12 12:24:04

标签: jquery anchor

我正在尝试使用jQuery来修改锚标记href,但我无法将我在htmlFragment中所做的更改保留在下面。

似乎jQuery选择器复制了值,而不是使用引用?

我可以保存修改后的href值而无需复制到新元素吗?

 <div class="photo"><a class="photo_large" href=http://myimage/a/1.jpg>AAAA</a></div> 
 <div class="photo"><a class="photo_large" href=http://myimage/b/1.jpg>AAAA</a></div>   

function(err, htmlFragment) {
    var photosImg = $('.photo_large', htmlFragment);

    $(photosImg[0]).attr('href', '');
    $(photosImg[1]).attr('href', '');
    $(photosImg[2]).attr('href', '');

    $('#mydivout').html( htmlFragment );
}

3 个答案:

答案 0 :(得分:0)

无论你有什么解释,我都想回答你

$("a.photo_large").each(function(index,value){
  $(this).attr("href","javascript:void(0);");
});

在上面的代码中,index将为您提供从0开始的a的位置,如果要为任何链接执行特殊操作,则可以使用index执行此操作

答案 1 :(得分:0)

如果您想更改href的值,您可以使用以下内容:

$(photosImg[0]).href = $(photosImg[0]).href.replace("old value","new value");

 $(photosImg[0]).href = $(photosImg[0]).href.replace($(photosImg[0]).href,"new value");

如果你想做多于一个,比如你的例子,你可以使用for循环;

答案 2 :(得分:0)

原来我必须将普通的DOM元素包装成JQuery

    var normalDom = document.getElementById('myelem');

    var photosImg = $('.photo_large', $(normalDom) );

否则jQuery不会将任何修改后的数据保存回DOM。

我无法重现我在jsFiddle中获得的原因,因为我的系统正在使用它。