0

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

$.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());

谢谢

4

3 回答 3

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 字符串。

于 2013-05-15T10:09:15.303 回答
0

尝试src使用 jQuery 替换数据中的所有内容,例如

data = data.replace(/oldstring/g, "newstring");
于 2013-05-15T10:07:56.850 回答
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');
});
于 2013-05-15T10:09:19.523 回答