jQuery(selector).contains抛出“无方法”TypeError?

时间:2012-10-18 18:29:34

标签: javascript jquery

我的HTML:

<form>
    <input type="text" name="url" maxlength="10" />
</form>

我的JS:

$(document).ready(function(){
    var inputUrl =  $('input[name=url]');
    inputUrl.change(function() {
        alert(inputUrl);
        if ($(inputUrl).contains('watch'))
        {
            alert ('Contains watch: yes');
        }
        else
        {
            alert ('Contains watch: no');
        }
    });
});

Chrome控制台显示:

Uncaught TypeError: Object [object Object] has no method 'contains'

正确的语法是什么:

if ($(inputUrl).contains('watch'))

3 个答案:

答案 0 :(得分:7)

if (inputUrl.val().indexOf('watch') > -1) {

或者您可能只想对当前接收事件的人进行操作。

if ($(this).val().indexOf('watch') > -1) {

或者使其不区分大小写:

if (/watch/i.test($(this).val())) {

答案 1 :(得分:0)

你可以这样做。 conatins psuedo用于搜索innerHtml中的文本。 它不搜索输入元素值

$(inputUrl).val().indexOf('watch') > 0

参考:http://api.jquery.com/contains-selector/

答案 2 :(得分:0)

我的第一个想法是将input[name=url]更改为input[name=url]:contains('watch')或者在代码中进行inputUrl var解析,但这只会从元素中获取文本而不会对问题产生影响到attr的值。 @ user1689607的回答看起来是最好的回答。