2016-01-13 97 views
3

我正在做一个JavaScript和HTML计算器程序。我有一个值为'='的按钮。在那个时候,用户点击计算器上的“=”按钮。它应该开始评估他/她迄今给出的输入。但当用户点击'='按钮,我试图比较这样的如何比较等于'='在JavaScript

$(".calcinput").click(function() { 
     var res = $(this).val(); 
     if (res == '=') { 
      //code to handle when '=' is pressed; 
     } 
    } 

但它没有工作,请帮助我。

+0

适当的值<输入type =“button”value =“=”>'。 –

回答

2

你的代码是good足以处理该事件..只是在comapre

添加额外的 =
$(".calcinput").click(function() { 
    var res = $(this).val(); 
    //if (res == '=') { 
     if (res === '=') { 
     //code to handle when '=' is pressed; 
    } 
}); 

下一页检查要使用divbutton或别的元素代表button =

如果button然后用val()提取值

var res = $(this).val(); 

如果元素div那么它可以是innerHTMLinnerTEXT

var res = $(this).innerHTML; 
//Or 
var res = $(this).innerText; 

您可以添加一个额外的行来检查是否获得的element

var res = $(this).val(); 
alert(res); 
你不需要检查`如果(RES ==“=”)'..显示您的完整代码
+1

其工作方式谢谢 –

+2

没有jQuery'innerTEXT'或'innerHTML'属性或方法。也许你的意思是* innerText *,但这不是一个jQuery方法或属性,它是一个IE浏览器专有的DOM属性,在所有浏览器中都不支持。如果* innerHTML *是必需的,那么'this.innerHTML'比'$(this).text()'更有效率。 – RobG

+2

是否使用'=='或'==='进行比较是无关紧要的,在这两种情况下,它都将字符串与字符串进行比较,因此不同类型不是问题,结果将是相同的。 – RobG

1

=是按钮元素的文本,而不是值。由于其中.val()返回空字符串。因此,你需要使用.text()而不是.val这里:

$(".calcinput").click(function() { 
    var res = $(this).text(); 
    if (res == '=') { 
     //code to handle when '=' is pressed; 
    } 
}); 
+1

考虑' – RobG

+0

@RobG:在这种情况下,OPs代码将完美工作。 –

+0

鉴于OP已经接受了充满错误的答案,谁知道问题是什么。如果您的答案以“如果...”开头,那就没问题。 – RobG

1

退房这个Demo。我已经做了操作ADD Simillarly你可以做到这一点的所有操作..keep简单

A<input type="text" class="a" /><br/> 

B<input type="text" class="b" /> 

<input type="button" class="calcinput" /> 

$(".calcinput").click(function() { 
     var res1 = $(".a").val(); 
     var res2 = $(".b").val(); 
     alert(parseFloat(res1) + parseFloat(res2)); 
    }); 
2

使用

$(this).text() 

在检索按钮文本,而不是

$(this).val() 

您代码

2

您还可以使用$(this).val(),前提是您有非emp TY value属性的按钮

HTML

<button class ="calcinput" type ="button">1</button> 
<button class ="calcinput" type ="button">2</button> 
<button class ="calcinput" type ="button" value="=">=</button> 

JS

$(".calcinput").on('click',function(){ 
    if($(this).val() === "="){ 
    alert("equal"); 
    } 
}) 

WORKING FIDDLE