我正在尝试使用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 );
}
答案 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中获得的原因,因为我的系统正在使用它。