0

我正在尝试使用 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 );
}
4

3 回答 3

0

无论你解释了什么,我都试图回答你

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

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

于 2012-05-12T12:37:48.517 回答
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 循环;。

于 2012-05-12T12:50:28.980 回答
0

原来我必须将普通的 DOM elem 包装到 JQuery 中

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

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

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

由于未知原因,我无法重现我在 jsFiddle 中得到的内容,我让它在我的系统上运行。

于 2012-05-12T12:54:54.517 回答