0

我的 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'))

4

3 回答 3

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

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

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

或使其不区分大小写:

if (/watch/i.test($(this).val())) {
于 2012-10-18T18:31:16.920 回答
0

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

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

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

于 2012-10-18T18:31:55.500 回答
0

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

于 2012-10-18T18:35:36.890 回答