使用jQuery更改HTML標記?這個是可能的嗎?例子:$('a.change').click(function(){//code to change p tag to h5 tag});<p>Hello!</p><a id="change">change</a>因此,單擊更改錨應該會導致<p>Hello!</p>部分更改為(例如)h5標記,以便以<h5>Hello!</h5>點擊后。我知道您可以刪除p標記并用h5替換它,但是是否有實際修改HTML標記的方法呢?
3 回答
當年話下
TA貢獻1890條經驗 獲得超9個贊
保留現有的類和屬性:
$('div#change').replaceTag('<span>', true);
丟棄現有類和屬性:
$('div#change').replaceTag('<span class=newclass>', false);
將所有div替換為span、復制類和屬性,添加額外的類名。
$('div').replaceTag($('<span>').addClass('wasDiv'), true);
插件來源:
$.extend({
replaceTag: function (currentElem, newTagObj, keepProps) {
var $currentElem = $(currentElem);
var i, $newTag = $(newTagObj).clone();
if (keepProps) {//{{{
newTag = $newTag[0];
newTag.className = currentElem.className;
$.extend(newTag.classList, currentElem.classList);
$.extend(newTag.attributes, currentElem.attributes);
}//}}}
$currentElem.wrapAll($newTag);
$currentElem.contents().unwrap();
// return node; (Error spotted by Frank van Luijn)
return this; // Suggested by ColeLawrence
}});$.fn.extend({
replaceTag: function (newTagObj, keepProps) {
// "return" suggested by ColeLawrence
return this.each(function() {
jQuery.replaceTag(this, newTagObj, keepProps);
});
}});- 3 回答
- 0 關注
- 487 瀏覽
添加回答
舉報
0/150
提交
取消
