Javascript jQuery将字符串与输入值进行比较
我试图在JQuery中进行类似的字符串比较Javascript jQuery将字符串与输入值进行比较,javascript,jquery,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
$('#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()
谢谢 字符串的两端可能有额外的空格。尝试:
if(“SOMETHING”==$(this.val().trim())
以$(this.val()的相反顺序表示,给jquery(由$表示)this值,然后在该函数返回时调用函数.val()$这个.val()的意思是,调用变量$this上的函数.val(),我怀疑您尚未定义该变量
看起来您的代码片段应该可以工作,但是===检查字符串是否完全相等,我强烈建议您使用console.log检查console中的字符串,以验证它没有任何尾随空格或类似空格。将警报替换为console.log(),并查看开发者控制台(chrome上的ctrl-shift-I)。你也可以
console.log( "SOMETHING" === $(this).val())
看看你的问题是否真的是比较。但它很可能与空格有关 jQuery语法通常是
$(选择器)
。如果您的案例此
是您的选择器,那么$(此)
将是正确的语法。这是一个可搜索的问题和答案索引。请一次问一个问题。$未定义此
。如果您谈论的是DOM语法,那么需要this.value
否则需要显式定义var$this=$(this)
请为你的坏代码举个例子。发布\select\u directory\u type
元素的HTML。这个
不是选择器,它是DOM元素,所以这是$(元素)
的例子,不是$(选择器)
。对。我使用了d3.js命名法,选择器基于DOM元素。感谢您的解释。问题是字符串比较失败的空白。