Jquery Javascript在if语句中使if语句不起作用

时间:2011-05-05 01:20:11

标签: javascript jquery if-statement switch-statement

我正在使用Jquery。这个if语句有效:

if ($(this).siblings(".numOfMatchedKeywords").text() == 1) {
                    $(this).siblings(".numOfMatchedKeywords").css({'color':'#0099ff'})
               }

但是当我试图把它变成一个开关盒时,我无法让它工作:

var numWord = $(this).siblings(".numOfMatchedKeywords").text();
                switch (numWord){
                    case 1: 
                        numWord.css({'color':'#0099ff'})
                    break;
                    case 2: 
                        numWord.css({'color':'#33cc33'})
                    break;
                    case 3: 
                        numWord.css({'color':'#ff0099'})
                    break;
                }

我做错了什么?

3 个答案:

答案 0 :(得分:3)

使用parseInt()

parseInt($(this).siblings(".numOfMatchedKeywords").text(), 10);

此外,numWord是文本而不是jQuery对象。

var numWord = parseInt($(this).siblings(".numOfMatchedKeywords").text(), 10);
var $sib =$(this).siblings(".numOfMatchedKeywords");
switch (numWord) {
case 1:
    $sib.css({
        'color': '#0099ff'
    })
    break;
case 2:
    $sib.css({
        'color': '#33cc33'
    })
    break;
case 3:
    $sib.css({
        'color': '#ff0099'
    })
    break;
}

答案 1 :(得分:2)

压缩版本:

var numWord = parseInt($(this).siblings(".numOfMatchedKeywords").text());
var colors = ['', '#0099ff', '#33cc33', '#ff0099'];
$(this).siblings(".numOfMatchedKeywords").css('color', colors[numWord]);

答案 2 :(得分:0)

我猜if语句在.text()和1上执行一些自动转换,并且等于字符串和整数,而switch语句相当于===。 不保证以上,但我建议尝试: 'case“1”:instead of案例1:`

此外,您将css应用于您设置的numWord等于元素的文本,而不是元素本身。