我正在尝试在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()
谢谢!
答案 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)
将是正确的语法。