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

通常のDOM要素をJQueryにラップする必要があることが判明しました

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

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

そうしないと、jQueryは変更されたデータをDOMに保存しません。

不明な理由でjsFiddleで取得したものを再現できません。システムで動作させました。

于 2012-05-12T12:54:54.517 に答える
0

あなたが説明したことは何でも、私はあなたに答えようとしています

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

上記のコードでは、は 0 から始まるindex位置を示しますa。任意のリンクに対して何か特別なことを実行する場合は、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 loop; を使用できます。

于 2012-05-12T12:50:28.980 に答える