2013-12-13 217 views
2

我只是想知道如何檢查div是否沒有子元素,因爲如果元素沒有加載到指定div中,我需要放置一個佔位符文本。檢查div是否有html元素

這裏是我的代碼:

var test = ($('#'+chartId)).children().length; 
console.log(test); 
if(test==""){ 
    alert('empty'); 
} 
else{ 
    alert('present'); 
} 

將這項工作,如果我想如果Flash組件被加載到一個div來檢測?

+0

你爲什麼不嘗試一下,並詢問如果它不工作嗎? – strauberry

+0

您不需要將長度轉換爲字符串。只要'if($(「#id」)。length)'會做。是的,'children()'只會返回HTML孩子,所以你應該安全使用 – CodingIntrigue

回答

4

.length是0並且在沒有兒童時不爲空。你還可以縮短你的代碼了一下,像這樣:

if(!($('#'+chartId)).children().length){ 
    alert('empty'); 
} 
else{ 
    alert('present'); 
} 
+1

但是'0 ==「」'是真的,那是他正在使用的測試。不是最佳實踐,但相當於你擁有的。 –

4

試試這個:

if($('#' + chartId).children().length > 0){ 
    alert('present'); 
} 
else{ 
    alert('empty'); 
} 

DEMO

+0

這個工作與SWF元素?或只有html? –

+0

如果在一個div或標籤內是的,你可以數它@ a_miguel6687 –

+0

如果它的內部是一個標籤呢? –

0

你正在做的比較長(數字)到一個空的錯誤串。如果沒有任何內容,並且您打電話給.length,它將返回0,而不是空字符串。

var length = $('#one').children().length; 
if (length > 0) { 
    alert('hi'); 
} 
if (length === 0) { 
    alert('bye'); 
} 

小提琴:http://jsfiddle.net/KyleMuir/349Uq/

+0

這將工作與一個SWF對象元素?它似乎並不適用於我 –

+0

張貼您的標記,我們可以從那裏:) –

+0

是的,它已經工作的問題是,因爲我把條件在回調這是錯誤的,因爲假設閃光燈不存在瀏覽器 –