2012-05-12 87 views
0

我試圖修改錨標籤h​​ref ausing jQuery按照下面,但我不能堅持我下面做htmlFragment的更改。jQuery不會持久化修改錨標籤h​​ref屬性

看起來像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); 
} 
+1

我沒有看到變更到這裏htmlFragment,並複製什麼樣的價值,參考的是什麼? – Chad

+2

雖然你的代碼可以大大改進,但它似乎做你想做的(清空'attr'屬性):http://jsfiddle.net/Frerc/。請更準確地說明你的問題。如果我們無法複製它,我們無法幫助您。 –

+0

感謝Felix,我的代碼中的htmlFragment不是jQuery對象,只是一個正常的DOM elem,這就是爲什麼它不起作用。 :) 將其包裝爲jQuery對象使其工作。 – portoalet

回答

0

原來,我必須包裝正常DOM ELEM到JQuery的

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

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

否則jQuery將不會修改任何數據保存回DOM。

我無法重現我在的jsfiddle得到了未知的原因,我知道了我的系統上工作。

0

,不管你有explaind我想回答你

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

在上面的代碼index會給你a的從0開始的位置,如果你執行一些特別的東西對於任何鏈接,那麼你可以通過使用index

+0

感謝,但沒有工作,因爲我沒有換我的元素插入jQuery對象按我的回答 – portoalet

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循環;.

+0

感謝,但沒有工作,因爲我沒有換我的元素插入jQuery對象按我的答案 – portoalet