有沒有一種方法可以檢測標記是否像JQuery一樣自動關閉,如圖像標記?動態的東西不僅僅是一個圖像標籤。JQuery檢測標記是否自行關閉
if ($('.selector')[0].tagName.toLowerCase()=="img") {
// do something
}
有沒有一種方法可以檢測標記是否像JQuery一樣自動關閉,如圖像標記?動態的東西不僅僅是一個圖像標籤。JQuery檢測標記是否自行關閉
if ($('.selector')[0].tagName.toLowerCase()=="img") {
// do something
}
您是否需要區分空元素與自閉元素?如果沒有,你可以使用:
if ($(".selector").is(":empty")) {
// do something
}
但是,如果你在談論檢測一個給定的HTML標籤是否應該是空的或不,不,你不能這樣做編程,因爲你不是從創建無效停止HTML,你需要根據DTD進行驗證才能發現。
這適用於我的目的,以上也是,但我認爲這是最乾淨的答案。 – Hatchware 2010-02-18 21:56:47
jQuery的使用這個列表內:
/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i
你可以這樣做:
if(/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i.test($('.selector')[0].tagName)) {
//do something
}
這應該是公認的答案。 – 2016-03-01 16:28:07
您可以檢查.html()
訪問,看看它是否會返回一個空字符串。雖然這將在<p></p>
上返回true,但我會爲所有可能被視爲自閉標籤的意圖和目的進行成像。
你需要一點背景。通過網絡發送的HTML標記由瀏覽器解析爲DOM樹。在這一點上,原始標記消失了,達到了目的,並且不再存在。在元素上執行innerHTML
時,這不是生成元素的文字HTML,而是瀏覽器對該DOM子樹的序列化。
重點是,<div />
和<div></div>
之間沒有什麼不同。所以看看它是否有任何孩子。如果不是,則元素確實有有一個可能的XHTML表示,它使用自閉標記。
element.children().length == 0
或克萊說:
element.is(":empty")
'children()'不返回文本節點。正如jQuery實現它,你應該使用'element.contents()。length'而不是'element.children()。length'。 Children()返回所有子項_tag_元素。 Contents()返回所有子元素_tag_元素**加**全部node_text。例如:'$('
爲什麼你需要找到這一點? – cletus 2010-02-18 21:46:43
@cletus:從OP的上一個問題的莖:http://stackoverflow.com/questions/2291434/jquery-check-if-prepend-failed – Sampson 2010-02-18 21:47:24