jQuery将字符串与输入值进行比较

时间:2017-08-04 17:50:05

标签: javascript jquery

我正在尝试在JQuery中进行字符串比较

$('#select_directory_type').on('change', function() {
     window.alert($(this).val()); // I can see the selection is "SOMETHING"
     if( "SOMETHING" === $(this).val() ){
         // Never gets executed even when the selection is "SOMETHING".
     } });

另一个问题是,

之间有什么区别
$this.val()
and 
$(this).val()

谢谢!

3 个答案:

答案 0 :(得分:1)

以相反的顺序$(this).val()表示,给jquery(用$表示)这个值,然后在返回该函数时调用函数.val()。 $ this.val()说,在函数$ this上调用函数.val(),我怀疑你没有定义。

看起来你的代码片段应该工作,但是===检查确切的字符串相等性,我强烈建议你使用console.log在控制台中检查你的字符串,以验证它没有没有任何尾随的空格或类似的。用console.log()替换你的警报,然后查看开发人员控制台(chrome上的ctrl-shift-I)。你也可以

 console.log( "SOMETHING" === $(this).val()) 

查看您的问题是否实际上是比较。尽管它最有可能是空白。

答案 1 :(得分:0)

字符串两端可能有额外的空格。试试:

if( "SOMETHING" === $(this).val().trim() )

答案 2 :(得分:0)

jQuery语法通常是$(selector)。如果您的案例this是您的选择器,那么$(this)将是正确的语法。