jQuery没有';t持久化修改的锚标记href属性

jQuery没有';t持久化修改的锚标记href属性,jquery,anchor,Jquery,Anchor,我正试图根据下面的内容修改锚定标记href ausing jQuery,但我无法将我所做的更改保存到下面的htmlFragment中 jQuery选择器似乎复制了值,而不是使用引用 我可以保存修改后的href值而不复制到新元素中吗? <div class="photo"><a class="photo_large" href=http://myimage/a/1.jpg>AAAA</a></div> <div class="photo"

我正试图根据下面的内容修改锚定标记href ausing jQuery,但我无法将我所做的更改保存到下面的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 );
}

函数(err、htmlFragment){
var photosImg=$('.photo_large',htmlFragment);
$(photosImg[0]).attr('href','';
$(photosImg[1]).attr('href','';
$(photosImg[2]).attr('href','';
$('#mydivout').html(htmlFragment);
}

不管你怎么解释,我都会尽力回答你

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

在上面的代码中,
索引将为您提供从0开始的
a
的位置,如果您要对任何链接执行特殊操作,那么您可以使用
索引来执行该操作。如果您要更改href的值,您可以始终使用以下内容:

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


如果您想对多个对象执行此操作,例如您的示例,可以使用for循环

结果是我必须将普通DOM元素包装到JQuery中

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

    var photosImg = $('.photo_large', $(normalDom) );
否则jQuery不会将任何修改后的数据保存回DOM


不知什么原因,我无法复制我在JSFIDLE中得到的东西,我让它在我的系统上工作。

我看不到对htmlFragment的更改,并复制什么值,引用什么?虽然您的代码可以大大改进,但它似乎可以做您想要的事情(清空
attr
属性):。请更准确地说明你的问题。如果我们不能复制它,我们就帮不了你。谢谢Felix,我代码中的htmlFragment不是一个jQuery对象,只是一个普通的DOM元素,这就是它不起作用的原因。:)将其包装为jQuery对象使其工作。谢谢,它不工作是因为我没有按照我的回答将元素包装到jQuery对象中谢谢,它不工作是因为我没有按照我的回答将元素包装到jQuery对象中
    var normalDom = document.getElementById('myelem');

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