2011-03-31 74 views
0

我在jQuery上很新,想變得更好。我試圖想出這個代碼片段:jQuery .has()目標不同元素

$(document).ready(function(){ 
    $("ul#result-list").has("div#boom")(
     function() { 
     $("div.page-navigation").css("display", "none")); 
    }); 
}); 

我試圖讓div.page導航消失,如果UL#結果列表具有DIV#熱潮。儘管搜索整個網絡,但迄今還沒有運氣。我遠嗎?感謝您的HEL

+0

你有沒有html標記? – Neal 2011-03-31 19:48:29

回答

3

.has()返回匹配的dom元素,而不是true或false布爾值。相反,請檢查length屬性以確定#result-list中是否存在div#boom

事情是這樣的:

$(document).ready(function() { 
    if ($("ul#result-list").has("div#boom").length) { 
    $("div.page-navigation").hide(); 
    } 
}); 
+0

這個伎倆!謝謝你們的及時答覆。過去3個小時我一直在想這個 – Julesfrog 2011-03-31 20:00:40

1

嘗試這樣:

$(document).ready(function() { 
    if($('ul#result-list:has(div#boom)').length > 0) { 
     $('div.page-navigation').hide(); 
    } 
} 

如果有,有一個繁榮的div元素至少一個結果列表項這將隱藏頁面導航div中。

0

唯一的問題,我所看到的,說真的,你沒有鏈接方法:

$(document).ready(function(){ 
    $("ul#result-list").has("div#boom")(
     function() { 
     $("div.page-navigation").css("display", "none")); 
    }); 
}); 

這意味着.has()後,你打開一個沒有附加到方法的括號。我建議你應該嘗試使用if聲明,而不是嘗試鏈接,在這種情況下。我會張貼我的想法,但@DNR,和@Alex,先到那裏。