检查元素是否包含特定的子元素

lom*_*mse 7 html javascript jquery dom jquery-selectors

我有很多divs有时包含链接.我想检查一下他们是否有链接.这是我的尝试:

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.
    }
Run Code Online (Sandbox Code Playgroud)

通过这样做,container.html()我可以看到container包含锚标签的确切内容,但我上面的代码总是说它找不到锚标签.

有人能告诉我我做错了什么吗?

Dal*_*las 8

改为:

if(container.find("a").length){ ...
Run Code Online (Sandbox Code Playgroud)

container是一个jquery对象,.find()是该对象的一个​​函数,用于查找其中的元素.长度大于0意味着它会找到一个锚标记,它将评估为true.

编辑:

另外,解释为什么你的例子不起作用.当你这样做时container+':has(a)',你正在toString()对你的对象进行字符串连接(将其转换为"[object Object]").所以你最终得到字符串"[object Object]:has(a)",它总是评估为true.