1

ID 1 の別の div に存在する ID "led1" を持つすべての div 要素のクラスを変更しようとしています。

<div class="MACHINE">
  <div id="1" class="HOST">EMPTY
    <div id="led1" class="LED"></div>
  </div>
</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")     
   },
 });
},   
}
4

2 に答える 2

1

問題が発生しました。

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

「HOST」の 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 'EMPTY': $('#led' + key).removeClass(currClass).addClass('LED ' + value);$(".host-value", $('#' + key)).html(value);break;

次に、 #key .host-value からの単純な要素ではないため、「値」を取得する方法を変更する必要があります

于 2012-01-24T19:44:25.603 に答える
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">

于 2012-01-24T19:42:58.827 に答える