2010-10-25 2 views
2

Я пытаюсь использовать jquery: содержит (или .contains()) селектор внутри функции, однако я не могу заставить его работать.Использование jquery содержит внутри функции?

В основном я передаю строку функции, и я хочу проверить переменную, если она содержит X, сделать что-то еще что-то еще. Если это имеет смысл.

Вот мой код.

function checkMe(myVar) { 
    if ($(myVar).contains("foo")) { 
    //do something 
    } else { 
    //do something else 
    } 
} 

и мой вызов функции:

checkMe("/foo/bar"); 

Но это не работает. Любая помощь будет оценена! :)

+0

спасибо всем за вашу помощь – SoulieBaby

ответ

3

В jQuery содержится функция проверки, если узел dom содержит другой dom-узел. То, что вы хотите сделать, это просто проверить, содержится ли строка внутри другого. Вы можете сделать простой поиск регулярных выражений.

Попробуйте вместо этого:

if (myVar.match("foo")) { 
1

вы должны использовать JQuery? как насчет чего-то подобного?

function checkMe(myVar) { 
    if (myVar.indexOf("foo") > -1) { 
    //do something 
    } else { 
    //do something else 
    } 
} 
} 
+1

Зачем вызывать toString для объекта, который уже является строкой? –

+1

ты абсолютно прав (я отредактирую) – bluevoodoo1

1

привет просто проверить Jquery апи http://api.jquery.com/jQuery.contains/, jquery.contains применяется к DOM элементу. если вы хотите, чтобы строка содержала, попробуйте:

/foo/i.test("foo/bar"); 
1

содержит чеки, если один элемент DOM содержит другой.

За то, что вы хотите, вам не нужно JQuery на все:

function checkMe(myVar) { 
    if (myVar.indexOf("foo") >= 0) { 
    //do something 
    } else { 
    //do something else 
    } 
} 

IndexOf вернет -1, если «Foo» не найден в переданной строке; в противном случае он возвращает индекс в строке, где было найдено «foo».