2017-04-17 29 views
1

**你好**根據div數據的javascript案例開關

1)我想案件切換根據顯示在div「顯示」。

  • div顯示屏顯示按鈕添加的點擊次數。

2)如果其可能添加的情況下,如果數量超過4顯示xxxx。

3)我可以在案件中顯示圖像而不是文字嗎?

  • 這是我的代碼,但它不工作。

$('[id=display]').each(function() { 
 
    var text = $(this).text(); 
 
    text = $.trim(text); 
 

 
    switch (text) { 
 
    case '1': 
 
     $('#final').text('x---'); 
 
     break; 
 
    case '2': 
 
     $('#final').text('xx--'); 
 
     break; 
 
    case '3': 
 
     $('#final').text('xxx-'); 
 
     break; 
 
    case '4': 
 
     $('#final').text('xxxx'); 
 
     break; 
 
    default: 
 
     $('#final').text('----'); 
 
     break; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script type="text/javascript"> 
 
    var capnum = 0; 
 

 
    function add() { 
 
    capnum++; 
 
    document.getElementById('display').innerHTML = capnum; 
 
    } 
 
</script> 
 

 
<button onclick="add()">add</button> 
 

 
<div id="display"> 
 
    <script type="text/javascript"> 
 
    document.write(capnum); 
 
    </script> 
 
</div> 
 

 
<div id="final"></div>

+0

是當你點擊「添加」按鈕時應該改變的東西嗎?因爲你的'each'函數只運行一次,因爲它不在'add'函數中 –

回答

0

你需要在每次點擊事件更新。見下面的代碼。

<script> 
var capnum = 0; 
function add() { 
    capnum++; 
    document.getElementById('display').innerHTML = capnum; 
    update(); 
} 
</script> 

<script> 
    function update() { 
     $('[id=display]').each(function() { 
      var text = $(this).text(); 
      text = $.trim(text); 
      // discard switch statement for better (from dandavis's comment) 
      $('#final').text({1:'x---',2: 'xx--',3:'xxx-', ... }[text] || '----'); 
     }); 
    } 
</script> 

問題3:當然。

+1

'$('#final')。text({1:'x ---',2:'xx - ',3: 'xxx-',...} [text1] ||'----');' – dandavis

+0

我試着在小提琴裏不工作,你可以試試嗎? https://jsfiddle.net/musanajame/6u6kd6d6/1/ – musa94

+0

加載js在 .. https://jsfiddle.net/6u6kd6d6/4/ –