我想从用户输入中删除所有 html 标签。
此代码从 中删除所有 html 标记#container
,除了锚点和 img 标记。
$("#container").find('*:not(a,img)').each(function() {
$(this).replaceWith(this.innerHTML);
});
我无法将其转换为查找输入文本 .val();
$('#inputTxt').val().find('*:not(a,img)').each(function() {
$(this).replaceWith(this.innerHTML);
});
此代码显示错误:
$input.val().find() 不是函数。
有人能帮我吗?
更新 POST
好吧,antyrat 先生给出的示例是删除任何其他标签中的所有内容,但我想要它们的内容,只需删除它们的标签。所以我像这样改变了它,它正在工作。
var tmpElement = $( $( '#inputTxt' ).val() ); // create tmp HTML node
tmpElement.find('*:not(a,img)').each(function() {
$(this).replaceWith(this.innerHTML);
});
return tmpElement.html();
问题
上面的代码适用于以下一些输入:
<div> Hello <a href="#"> I am a link </a> </div>
<a href="#" ></a><div>Hello<img src="url" /></div>
但是当用户键入这样的内容时:
<div><a <div ></div> href="#" ></a></div>
输出是:<a <div=""> href="#" >Another link</a>
这是jsfiddle