2012-01-24 84 views
1

我試圖改變類駐留在另一個DIV id爲1更改子元素類與jQuery

<div class="MACHINE"> 
    <div id="1" class="HOST">EMPTY 
    <div id="led1" class="LED"></div> 
    </div> 
</div> 

我用下面的代碼,但它的ID「LED1」的所有div元素的唯一改變文字「EMPTY」而不是課程。下面是我的一個js文件,用來改變這個類。由於某種原因,它不起作用...

我希望有人能指引我進入正確的方向。

$.each(data, function(hst) { 
    $.each(data[hst], function(key, value){ 
     var currClass = $('#led'+ key).attr('class'); 
     switch(value) 
     { 
      case 'EMPTY': $('#led' + key).removeClass(currClass).addClass('LED ' + value);$('#' + key).html(value);break; 
      case 'PROCESSING': $('#led' + key).removeClass(currClass).addClass('LED ' + value);$('#' + key).html(value);break; 
      case 'FINISHED': $('#led' + key).removeClass(currClass).addClass('LED ' + value);$('#' + key).html(value);break; 
      case 'REPLACE': $('#led' + key).removeClass(currClass).addClass('LED ' + value);$('#' + key).html(value);break; 
     } 
     }); 
    }); 
    }, 
    error: function() { 
    alert('Ello'); 
    console.log("ERROR: show_host_status")  
    }, 
}); 
}, 
} 
+0

你有沒有相同ID的元素? –

+2

ID a)不應以數字開頭,b)應該是唯一的。 「我試圖改變ID爲」led1「的所有div元素的類,」意味着你有多個元素。 – j08691

回答

1

我看到的一個問題。

case 'EMPTY': $('#led' + key).removeClass(currClass).addClass('LED ' + value);$('#' + key).html(value);break; 

它將「主機」的HTML設置爲任何值(從而移除LED)。嘗試這樣的事情。

<div class="MACHINE"> 
    <div id="1" class="HOST"> 
     <div class='host-value'>EMPTY</div> 
     <div id="led1" class="LED"></div> 
    </div> 
</div> 

,並在case語句代碼爲

​​

然後,你必須改變你如何讓「價值」,因爲它不只是直線元素的從#鍵。主持人價值

+0

不錯!似乎完美的工作! TNX – Martijn

0

正如在其他答覆中指出,答案是技術上:

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".")

道歉:@dgvid

嘗試改變<div id="1"><div id="host-1">和更新腳本,因此

+0

我將ID更改爲host1,並相應更新了我的腳本,但沒有運氣... – Martijn