Jquery如果$ this属性选择器包含一个单词

时间:2016-03-21 16:37:24

标签: javascript jquery html

是否可以在$(this)上使用jquery属性包含选择器?我找不到任何例子。我想看看输入字段是否包含某个单词。

$("#form input").keyup(function() {
    if ($(this).filter( "[name~='someWord']" )) {
        console.log('yes');
    }
});

即使所有输入都不包含someWord,代码也会返回yes。

3 个答案:

答案 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');
    }
});