为什么ReplaceWith()不适用于包含HTML的变量?

时间:2015-12-02 22:16:12

标签: jquery html

我有一个包含这样的span元素的变量:

$elem.find("img, img + span").each(function(innerIndex) {
    var $figcaption = $(this).next('span')

我想用<span>标记替换此变量中的<figcaption>标记。我尝试使用ReplaceWith(),但它不允许在变量上使用它。

如何在变量中进行替换?我不是在这个阶段直接操纵DOM。

2 个答案:

答案 0 :(得分:1)

如果你需要它

<span>
    <figcaption>
         Copyright information
    </figcaption>
 </span>

您可以尝试 .html()

var $figcaption = '<span>Copyright information</span>';
$($figcaption).html('<figcaption>'+ $($figcaption).text()+'</figcaption>');

如果你需要它

<figcaption>
     Copyright information
</figcaption>

你可以(使用replaceWith())

var $figcaption = '<span>Copyright information</span>';
$($figcaption).replaceWith('<figcaption>'+ $($figcaption).text()+'</figcaption>');

更改变量

var $figcaption = '<span>Copyright information</span>';
$figcaption = $figcaption.replace(/span/g , 'figcaption');

Demo here

答案 1 :(得分:0)

您只需使用replace();请考虑以下事项:

var $figcaption = '<span>Copyright information</span>';
// Replace the opening and closing span tags
$figcaption = $figcaption.replace("<span>", "<figcaption>").replace("</span>", "</figcaption>");