2

0個以上の画像を含む可能性のあるメモリにのみ存在するdivがあります。JQuery findを使用してthouse画像のsrcを変更しようとしていますが、問題は、マネージャーが各imgのsrcを設定しても、divのコンテンツが変更されないままであるということです。

    function contentWithReplacedImages(divContent){
    console.log(divContent);//I get <div class='editable singleColumnElement'><p>asdasd ad a dasd ad<br/></p><p><img/> <br/></p></div>
    $(divContent).find("img").each(function(index){
        $(this).attr({
            'src':"imgSrc"
        });
        console.log($(this).attr('src'));//I get "imgSrc"
    });

    console.log(divContent); //divContent remains unchanged.

}
4

2 に答える 2

5

$(divContent)(jQueryオブジェクト)を変更しましたが、最後に元のdivContent(html文字列)の内容を確認しています。

は実際にはDOMの一部ではないためdivContent、変更をどこにも保存していません。

新しい変数を設定してみてください。

function contentWithReplacedImages(divContent) {
     var $temp = $(divContent); // jQuery object
     $temp.find("img").each(function (i,el) {
         $(el).attr({
             'src': "imgSrc.jpg"
         }); // $temp is modified in place
     });    
     console.log($temp.html()); // displays the modified string 
 }
于 2013-03-20T13:43:48.367 に答える
2

これにより、新しい要素が作成されます...

$(divContent)

次に、その新しい要素内の画像を見つけて、src属性を変更します。あなたはどの時点でもdivContent自分自身を変えていません。

これを試して...

function contentWithReplacedImages(divContent){
    console.log(divContent);
    var $divContent = $(divContent);
    $divContent.find("img").each(function(index){
        $(this).attr({
            'src':"imgSrc"
        });
        console.log($(this).attr('src'));
    });
    divContent = $divContent.html();
    console.log(divContent);
}

contentWithReplacedImages("<div class='editable singleColumnElement'><p>asdasd ad a dasd ad<br/></p><p><img/> <br/></p></div>");
于 2013-03-20T13:43:34.460 に答える