我有一个问题。我的代码工作正常,但我不明白,为什么我的if语句不起作用?
开关:
switch($('#radioo').html()) {
case 'On':
$('#hrflowo').html('Click button to turn HR Flow off')
.append('<br/>')
.append('<button id="radioo" style="padding:5px 30px 5px 30px; color:#fff;background-color:rgb(192,13,13);border:none;">Off</button>');
$('#hrflow1').attr('src', 'assets/images/charts/enhance/radiology/hrflow-2.jpg');
$('#hrflow3').attr('src', 'assets/images/charts/enhance/radiology/hrflow-4.jpg');
break;
case 'Off':
$('#hrflowo').html('Click button to turn HR Flow on')
.append('<br/>')
.append('<button id="radioo" style="padding:5px 30px 5px 30px; color:#fff;background-color:rgb(192,13,13);border:none;">On</button>');
$('#hrflow1').attr('src', 'assets/images/charts/enhance/radiology/hrflow-1.jpg');
$('#hrflow3').attr('src', 'assets/images/charts/enhance/radiology/hrflow-3.jpg');
break;
}
如果声明:
if($('#radioo').html('On')) {
$('#hrflowo').html('Click button to turn HR Flow off')
.append('<br/>')
.append('<button id="radioo" style="padding:5px 30px 5px 30px; color:#fff;background-color:rgb(192,13,13);border:none;">Off</button>');
$('#hrflow1').attr('src', 'assets/images/charts/enhance/radiology/hrflow-2.jpg');
$('#hrflow3').attr('src', 'assets/images/charts/enhance/radiology/hrflow-4.jpg');
}
else if($('#radioo').html('Off')) {
$('#hrflowo').html('Click button to turn HR Flow on')
.append('<br/>')
.append('<button id="radioo" style="padding:5px 30px 5px 30px; color:#fff;background-color:rgb(192,13,13);border:none;">On</button>');
$('#hrflow1').attr('src', 'assets/images/charts/enhance/radiology/hrflow-1.jpg');
$('#hrflow3').attr('src', 'assets/images/charts/enhance/radiology/hrflow-3.jpg');
}
两者都包含在点击事件$('#radioo').click(function(){
中,但if语句不起作用。有人能解释我为什么会这样吗?
最佳
弗雷德里克
答案 0 :(得分:0)
查看$.fn.html()
函数!
<强> 1。使用一个参数时:
如果它传递了一个值,就像你在IF STATSMENT中那样:
$('#radioo').html('On');
它只是更改文档,设置标记内容,然后返回一个jQuery对象。
<强> 2。在没有任何争论的情况下使用时:
如果在没有传递值的情况下调用它,就像你在SWITCH STATSMENT中那样:
$('#radioo').html();
它只是将文档内容作为字符串返回。
所以在你的IF统计中,无论标签内容如何,它都会返回jQuery对象,在if条件下绝对被判断为真。
答案 1 :(得分:0)
您的切换转换为if($('#radioo').html()=='On')
而非if($('#radioo').html('On'))
.html(arg)
返回一个jQuery对象,目的是允许你链接调用
答案 2 :(得分:0)
这将无法运作,
每当你将参数传递给html函数时,它将设置html而不是获取html元素。
所以你的if循环应该是这样的:
if($('#radioo').html() == 'On'){
$('#hrflowo').html('Click button to turn HR Flow off').append('<br/>').append('<button id="radioo" style="padding:5px 30px 5px 30px; color:#fff;background-color:rgb(192,13,13);border:none;">Off</button>');
$('#hrflow1').attr('src', 'assets/images/charts/enhance/radiology/hrflow-2.jpg');
$('#hrflow3').attr('src', 'assets/images/charts/enhance/radiology/hrflow-4.jpg');
}
else if($('#radioo').html() == 'Off'){
$('#hrflowo').html('Click button to turn HR Flow on').append('<br/>').append('<button id="radioo" style="padding:5px 30px 5px 30px; color:#fff;background-color:rgb(192,13,13);border:none;">On</button>');
$('#hrflow1').attr('src', 'assets/images/charts/enhance/radiology/hrflow-1.jpg');
$('#hrflow3').attr('src', 'assets/images/charts/enhance/radiology/hrflow-3.jpg');
}