如何在匿名函数中更改所有图像的src属性

时间:2013-05-15 10:00:18

标签: jquery html ajax

我正在尝试使用$ .get函数获取一个html页面。此页面的内容包含在我的“数据”对象中。我想要做的是解析我的数据并更改img标签的所有src属性。 这段代码几乎可以工作我可以访问我的src,但最终没有更新对象“data”。

$.get("url/to/page.html", function(data){
    $("img", data).each(function() {
        $(this).attr("src", newSrc);
    });
});

所以“数据”是page.html的html内容,我想更改SRC “newSrc”是带有源的新url的var。 如果我最后打印我的数据,我没有新的src。

编辑: 所以解决方案是:

$.get(this.htmlasset.get('url_asset'), function(data) {
    var $data = $(data);
    $data.find('img').each(function(){
        $(this).attr("src", newSrc);
    });
    $('#redactor').setCode($('<div></div>').append($data).html());

感谢的

3 个答案:

答案 0 :(得分:1)

您需要先将HTML转换为DOM对象,然后才能对它们进行操作。

$.get("url/to/page.html", function(data){
    var $data = $( data ).find( 'img' ).each(function() {
        $(this).attr("src", newSrc);
    });

    // $( 'body' ).append( $data );  or whatever you want to do with it
});

请注意,您应该从那里使用$data,因为它包含已修改的DOM元素。 data仍包含原始HTML字符串。

答案 1 :(得分:0)

尝试使用jQuery替换

替换数据中的所有src
data = data.replace(/oldstring/g, "newstring");

答案 2 :(得分:0)

您必须使用已更改数据。不是旧的。

$.get("url/to/page.html", function(data){
    var $elem = $('<div>').html(data);
    $elem.find('img').attr("src", newSrc);

    // now write the element in your page
    $elem.appendTo('body');
});