Jquery 使用多个选择器查找

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

我对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('.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(.sh‌​own)")

这不是一种优雅的方法,但也很有效。

您可以添加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(.sh‌​own)")