我有一个html字符串,我希望用img
标记替换所有figure
标记。这是我的代码
$('img',$(html)).replaceWith(function(){
var figure = '<figure><img src="'+$(this).src+'"><figcaption>'+$(this).attr('alt')+'</figcaption></figure>';
return $(figure);
});
此代码不起作用。我还希望在执行操作后返回生成的html字符串,但似乎replace只返回已替换的元素。那我该怎么做呢?
答案 0 :(得分:5)
$(this).src
不是有效代码。在这种情况下,您需要$(this).attr('src')
或this.src
。
然而,真正的问题可能是您希望html
就地更改 - 除非您未在replaceWith
上使用html
,而是在{{ 1}}。换句话说,您的HTML字符串不会被更改;你的临时jQuery对象然后消失了。
尝试这样的事情:
$(html)