input
內容不能有任何的子元素,所以你不能對他們使用append
。
您可以使用jQuery的val
方法來設置它們的值。
他們不會呈現在任何情況下 HTML,如果將值設置爲<span>My HTML to append</span>
,這正是你在輸入見。
回覆您的編輯:
因此,這將是這樣的:
<input><span>My HTML to append</span></input>
這是無效的HTML。 input
elements不能有內容,它們是"void" elements。這就是爲什麼你不能在他們身上使用append
。
重新下方的評論:
添加標記的問題時怎麼StackOverflow上做到這一點。
他們沒有。相反,有一個輸入,當你輸入完成標籤,他們將其刪除,並把它在輸入前一個跨度,所以你結了:
<span>
<span class="post-tag">tag</span>
<span class="post-tag">another-tag</span>
</span>
<input type="text">
在任何現代的瀏覽器中,右鍵單擊標籤輸入字段並選擇「檢查元素」以查看實時。
這裏是這樣做的非常快速和骯髒的例子(但也有大量的插件在那裏做它 — tagit,select2 [這我的客戶的一個用途和愛],...) :Live Copy
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<meta charset=utf-8 />
<title>Tags-Like Input</title>
<style>
.input-wrapper {
border: 1px solid #aaa;
}
.post-tag {
border: 1px solid #00a;
margin-right: 2px;
}
</style>
</head>
<body>
<div class="input-wrapper">
<input type="text" id="theInput">
</div>
<script>
(function() {
$("#theInput").on("keypress", function(e) {
if (e.which === 32) {
e.preventDefault();
addTag($.trim(this.value));
this.value = "";
}
});
function addTag(tag) {
$('<span class="post-tag"></span>')
.text(tag)
.insertBefore("#theInput");
}
})();
</script>
</body>
</html>
你想要什麼? –
您沒有將span擴展到輸入tag.it將不適用 –
您不能將HTML追加到表單元素。如果你的意思是你想設置它的值,使用'val()' –