为什么切换工作,如果没有?

时间:2014-09-11 08:10:26

标签: javascript jquery

我有一个问题。我的代码工作正常,但我不明白,为什么我的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语句不起作用。有人能解释我为什么会这样吗?

最佳

弗雷德里克

3 个答案:

答案 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');
}