2014-09-11 35 views
0

我有一個問題。我的代碼工作正常,但我不明白,爲什麼我的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(){,但如果聲明沒有工作。有人能解釋我爲什麼這樣嗎?

最佳

弗雷德裏克

+3

$( '#radioo')HTML( '開')將在radioo元素設置值 '開'。如果條件是什麼你想做什麼? – SSA 2014-09-11 08:11:31

+1

使用'$('#radioo')。html()=='On'' in if條件代替'$('#radioo')。html('On')' – Satpal 2014-09-11 08:11:51

+0

'$('#radioo') .html('開')'不解析爲'布爾型' – 2014-09-11 08:12:32

回答

0

看那$.fn.html()功能!

1.當一個參數使用:

如果有人在你通過一個值,像IF STATSMENT:

$('#radioo').html('On'); 

它只是改變了文檔,設置標籤內容,然後返回一個jQuery對象。

2.當不帶任何參數使用:

如果您切換STATSMENT它被稱爲沒有通過價值,這樣的:

$('#radioo').html(); 

它只是返回文檔內容作爲字符串。


在IF statsment

所以,無論標籤內容如何,​​它返回jQuery對象,這絕對是在如果條件判斷爲真。

+0

我想他也很想使用jQuery的'val()'而不是'html()',因爲檢查收音機的值會更有意義。 – Greg 2014-09-11 09:24:47

+0

謝謝!沒有意識到這一點 – 2014-09-11 15:35:44

0

你的開關轉換成if($('#radioo').html()=='On')代替if($('#radioo').html('On'))

.html(arg)返回一個jQuery對象,以讓您鏈通話的目的

0

這行不通,

不管何時你傳遞參數的html函數將設置html而不是獲取html元素。

所以,你如果循環應該是這樣的:

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'); 
} 
相關問題