首先,在“测试”一段时间之后我不得不说,stackoverflow非常酷!
我的问题: 我想检查$(this)是否有不任何在js-array中指定了类或id的父类。
到目前为止,我用“eval”做了这个,但Andy E.只是说服了我,放弃“eval”会更好。但是我不知道在这种情况下如何做到这一点。
以下是我的所作所为:
var testthis = '!(($(this).parents("'+<MY_ARRAY>.join('").length > 0 || $(this).parents("')+'").length > 0)';
if (eval(testthis)) {
....
}
如果有人善意回答我的问题,我必须道歉,我在接下来的几个小时内无法阅读(评论或评价)他/她的答案。遗憾!
答案 0 :(得分:2)
试试这个,不需要评估:
if(!$(this).parents(<MY_ARRAY>.join(', ')).length) {
//elem has none of those parents
}
在这种情况下,MY_ARRY包含“.class1”,“。class2”,“#id1”,“#id2”
等内容或者更慢,但是如果数组只是字符串,你可以检查两种情况:
if(!$(this).parents("." + <MY_ARRAY>.join(', .')).length &&
!$(this).parents("#" + <MY_ARRAY>.join(', #')).length) {
//elem has none of those parents
}
在这种情况下,MY_ARRY包含“class1”,“class2”,“id1”,“id2”之类的内容,但ID可能匹配,因为#class1可能匹配,因此不太理想。
答案 1 :(得分:0)
嗯,你可以迭代$(这个)节点,假设有多个节点,通过向上走树来检查父母,缓存你已经走过的任何路径,但我真的觉得无论你是什么试图在这里做,可能有更好的方法。