2010-06-08 41 views
7

Tôi có thể sử dụng khoảng thời gian trong câu lệnh chuyển đổi không?javascript chuyển đổi sử dụng khoảng thời gian

Giống như

switch (parseInt(troops[i])) { 
       case <10: 
        editbox.style.fontSize = "13px"; 
        break; 
       case <100: 
        editbox.style.fontSize = "12px"; 
        break; 
       case <1000: 
        editbox.style.fontSize = "8px"; 
        editbox.size = 3; 
        //editbox.style.width = "18px"; 
        break; 
       default: 
        editbox.style.fontSize = "10px"; 
      } 

???

+0

Không bạn không thể ... – psychotik

Trả lời

14

này nên làm việc mặc dù:

var j = parseInt(troops[i]); 
switch (true) { 
      case (j<10): 
       editbox.style.fontSize = "13px"; 
       break; 
      case (j<100): 
       editbox.style.fontSize = "12px"; 
       break; 
      case (j<1000): 
       editbox.style.fontSize = "8px"; 
       editbox.size = 3; 
       //editbox.style.width = "18px"; 
       break; 
      default: 
       editbox.style.fontSize = "10px"; 
     } 
+0

thông minh! (đây là phụ, 15 char min argh!) – Rob

+0

Tôi đã từng làm điều này trong vb mọi lúc. Không thể làm điều đó trong C# (tốt hơn hay tệ hơn) ... –

+0

funky! (filler) –

3

Số switch chỉ có thể được sử dụng với các giá trị rời rạc. Đối với các phạm vi, bạn sẽ phải sử dụng câu lệnh if.

var val = parseInt(troops[i]); 
if (val < 10) { 
    editbox.style.fontSize = "13px"; 
} else if (val < 100) { 
    // ... 
} else { 
} 
+0

1 cho câu trả lời đúng. +1 một lần nữa, nếu tôi có thể, cho chính tả rời rạc một cách chính xác. ;-) –

1

Đôi khi một switch là quá nhiều như công việc

var j= parseInt(troops[i]), 
val= j<10? 13: j<100? 12: j<1000? 8: 10; 

editbox.style.fontSize= val+'px'; 
if(val== 8) editbox.size= 3; 
Các vấn đề liên quan