jquery将元素替换为具有自己文本的新元素

时间:2014-07-30 04:54:28

标签: jquery html

我是jquery的新手,只是在努力学习。 我正试图改变我所有的< p为H.元素转换为<按钮>元素,与相应的p元素具有相同的文本。

所以,如果我有这个HTML:

<p>Hello</p>
<p>Here is a paragraph</p>
<p>And Another</p>

我想将其更改为:

<button>Hello</button>
<button>Here is a paragraph</button>
<button>And Another</button>

但是,我的jquery代码正在选择所有&lt; p为H.元素的文本同时发生,所以我明白了:

<button>Hello Here is a paragraph And Another</button>
<button>Hello Here is a paragraph And Another</button>
<button>Hello Here is a paragraph And Another</button>

我做错了什么?这是我的jquery / javascript:

var ChangeToButton = function () {
    $("p").replaceWith ("<button>" + $("this").text() + "</button>");
}

$("button").on("click", function (event) {
    ChangeToButton();
});

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:4)

尝试使用.replaceWith()的接收函数,

$("p").replaceWith (function(_,content){ 
    return "<button>" + content + "</button>" 
});

DEMO