我正在尝试使用$ .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());
感谢的
答案 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');
});