我正在使用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;
}
我做错了什么?
答案 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
等于元素的文本,而不是元素本身。