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包含锚标签的确切内容,但我上面的代码总是说它找不到锚标签.
有人能告诉我我做错了什么吗?
改为:
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.