2015-11-18 2 views
-5

У меня есть проблема для проверки функции javascript, содержащей это ключевое слово или нет.Проверка Javascript, если параметр содержит это ключевое слово

так, это мой код:

function check(el) {   
    if (el === this) { 

     return el; 
    } 
    else { 
     alert("not contain this keyword"); 
    } 
} 
check(this); 

это всегда показывает alert()

я попробовать el==this, я стараюсь el=this

как по-прежнему не работает.

можно использовать тип проверка?

что случилось с моим кодом?

+4

Что вы пытаетесь достичь? То, как вы вызываете 'check', у него будет' this' объекта window, и вы передаете 'this' как параметр, который также является окном, поэтому, конечно, они равны. 'el = this' присваивает' this' объекту 'el' и оценивает результат, который является правдивым, поэтому условие' if' будет выполнено. –

+5

Оба результата имеют предупреждение, поэтому ваш вопрос неясен. При использовании '==' и '===' вы сравниваете 'this' с' this'. При использовании '=' вы назначаете. Несмотря на это, его «непонятно, что вы пытаетесь сделать. Вы упоминаете, что содержат, но что должно содержать * что? –

+0

Я отредактировал мой вопрос, извините за недоразумение. Я создаю свою собственную функцию DOM. не зависит от jquery –

ответ

0

Если вы пытаетесь соответствовать строке (обернуть текст внутри одной/двойной кавычки). Используйте приведенный ниже код.

function check(el) { 

    if (el === 'this') { 
     alert("contain!"); 
     return el; 
    } else { 
     alert("not contain this keyword"); 
    } 
} 

check('this'); 
+0

Я забыл сказать, что это ключевое слово, а не строка. Кстати, спасибо Santhosh –

0

Если вы пытаетесь сопоставить текст «this», оберните одиночные или двойные кавычки вокруг этого. Приведенные ниже предупреждения кода, если переданная строка содержит «это»

function check(e1) { 
    if (e1.indexOf("this") > -1) { 
     alert("contain!"); 
     return e1; 
    } else { 
     alert("not contain this keyword"); 
    } 
} 
check("this"); 

Приведенный ниже код проверки, если прошло слово только «это»

function check(el) { 
    if (el === "this") { 
     alert("contain!"); 
     return el; 
    } else { 
     alert("not contain this keyword"); 
    } 
} 
check("this"); 
+0

Кажется маловероятным, что это то, что OP пытаясь сделать, что бы это ни было. Лучше оставить комментарий, спрашивающий, пытается ли он найти подстроку '' this ''внутри параметра' el'. Кстати, ваше форматирование кода немного не работает. –

+0

Это ключевое слово, а не строка. спасибо Nithin –

Смежные вопросы