我遇到了这个问题,Jquery items[c]被很好地定义为HTMLElement,但是当我使用.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')
返回undefined和bugs.那么这里发生了什么?
的数据
EDIT:以下是来自调试器firefox
的items[c]中的内容
**编辑:**这里是我有bug的函数,我切换到了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);
}
}
}
}
型
2条答案
按热度按时间mwkjh3gx1#
使用
字符串
这应该行得通
另一种解决方法是
型
这不是一个优雅的方法,但也工作。
wtzytmuj2#
您可以使用的另一种方法:用途:
字符串