是否可以在$(this)
上使用jquery属性包含选择器?我找不到任何例子。我想看看输入字段是否包含某个单词。
$("#form input").keyup(function() {
if ($(this).filter( "[name~='someWord']" )) {
console.log('yes');
}
});
即使所有输入都不包含someWord
,代码也会返回yes。
答案 0 :(得分:4)
您必须在此背景下使用.is()
,
if($(this).is( "[name~='someWord']" )) {
console.log('yes');
}
因为.filter()
会返回一个jquery对象(元素集合),而且永远不会是false
。
答案 1 :(得分:3)
您可以在事件处理程序
中使用Vanilla JS做得更好$("#form input").keyup(function(evt) {
if (evt.currentTarget.name.indexOf('someWord') > -1) {
console.log('yes');
}
});
这会检查实际DOM元素的name
属性,而不会添加jquery包装器的开销。
答案 2 :(得分:1)
尝试
$("#form input").keyup(function() {
if ($(this).filter("[name~='someWord']").length) {
console.log('yes');
}
});
或更好:
$("#form input").keyup(function() {
if ($(this).is("[name~='someWord']")) {
console.log('yes');
}
});