Jquery 使用多个选择器查找
我对Jquery items有这个问题[c]被定义为HtmleElement,但当我使用.find时,如果使用多个选择器,则会出现以下错误:Jquery 使用多个选择器查找,jquery,jquery-selectors,Jquery,Jquery Selectors,我对Jquery items有这个问题[c]被定义为HtmleElement,但当我使用.find时,如果使用多个选择器,则会出现以下错误: TypeError: X[g].exec is not a function http://code.jquery.com/jquery-latest.min.js 当我检查一些手表时,我得到了下图中的内容: $(items[c]).find('.received')工作正常,返回一些元素,因为该类中有元素 $(items[c]).find('.rece
TypeError: X[g].exec is not a function
http://code.jquery.com/jquery-latest.min.js
当我检查一些手表时,我得到了下图中的内容:
$(items[c]).find('.received')
工作正常,返回一些元素,因为该类中有元素
$(items[c]).find('.receive')
也可以正常工作,并返回零个元素,因为该类中没有元素
但是$(items[c]).find('.received.unseen')
返回未定义和错误。那么这里发生了什么
编辑:以下是调试器firefox中项目[c]的内容
编辑:这是我遇到错误并切换到jquery 2.1.1的函数:
function updateUnseenBell(){
var m;
for (var c in items)
if (items.hasOwnProperty(c) && (m = items[c].gEbCN("chat-partner-tab")[0])) {
if($(items[c]).find('.received.unseen:not(.shown)').length > 0){
if (!(m.l2_newMsgBell)) {
m.appendChild(m.l2_newMsgBell = newMsgBell.cloneNode());
playSound("message");
}
} else if (m.l2_newMsgBell) {
m.removeChild(m.l2_newMsgBell);
delete m.l2_newMsgBell;
}
}
}
为了调试,我将其减少到这个最小值,但仍然得到相同的错误:
function updateUnseenBell(){
for (var c in items) {
if (items.hasOwnProperty(c)) {
if ($(items[c]).find('.received.unseen:not(.shown)').length > 0) {
alert(1);
} else {
alert(2);
}
}
}
}
使用
这应该行得通
解决这个问题的另一个方法是
$(items[c]).find(".received").find(".unseen").find(":not(.shown)")
这不是一种优雅的方法,但也很有效。您可以添加html标记吗?元素
已接收
和未查看
是相同的还是子元素?如果子元素只是在它们之间添加空格,进一步添加到@guradio-如果您针对的是多个选择器(即非子元素),则它们之间需要一个逗号$(items[c]).find('.received,.unseen')……我无法重现(此外,我非常确定。find处理复合选择器很好)。items[c]是什么?它包含什么?请记录并邮寄it@guradio非常感谢。不,它们是同一元素的类,所以不应该有空格。事实上,我的最终目的是使用$(items[c]).find('.received.unseen:not(.show'))。选择[c]项中已接收和未显示但未显示的所有元素。但是,即使只是('.received.unseen'),它也不起作用。我已经尝试过了,但它不起作用。项目错过了一个s btw。是的,谢谢你,我设法在网站上获得了完整的功能(使用:not(.show)),并且工作正常。。所以我不知道我的代码中缺少了什么。我在上面的编辑中发布了这个函数。在if(items.hasOwnProperty(c)){
if-you-do-console.log(items[c])中,你是否获得了作为图像附加的内容。还有items
包含的内容。是的,我得到了正确的对象。我甚至添加了var a=items[c];我在以下使用:($(a)。find(.received.unseen:not(.show)”);但仍然相同。尝试var a=$(项[c])。不(“:可见”);
然后$(a)。查找(“.received.unseen:not(.show)”
。它也可以在小提琴中使用。
$(items[c]).find(".received").find(".unseen").find(":not(.shown)")