[英]Check if an element contains a specific child element
我有很多div
,有時包含鏈接。 我想檢查一下他們是否有鏈接。 這是我的嘗試:
var container = $(this).closest('.content').find('.text');
//Check if text contains a tags
if(container+':has(a)'){
alert('contain link');
}
else{
alert('no link found'); //Alert "contain link" even if no link is found.
}
通過執行container.html()
我可以看到container
的確切內容,包括錨標簽,但我上面的代碼總是說它找不到錨標簽。
有人能告訴我我做錯了什么嗎?
改為:
if(container.find("a").length){ ...
container
是一個jquery對象, .find()
是該對象的一個函數,用於查找其中的元素。 長度大於0意味着它會找到一個錨標記,它將評估為true。
編輯:
另外,解釋為什么你的例子不起作用。 當你執行container+':has(a)'
,你正在做一個字符串連接,它在你的對象上運行toString()
(將它轉換為“[object Object]”)。 所以你最終得到字符串“[object Object]:has(a)”,它總是評估為true。
您可以使用選擇器的length
屬性來確定是否找到任何元素。 嘗試這個:
var $container = $(this).closest('.content').find('.text');
if ($('a', $container).length) {
alert('Contains links');
}
else {
alert('No links found');
}
更改
if(container+':has(a)'){
至
if(container.has('a').size()){
container是一個jquery對象,而不是一個選擇器字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.