386 Stimmen

jQuery Klassenname ändern

Ich möchte die Klasse eines td-Tags anhand der id des td-Tags ändern:

<td id="td_id" class="change_me"> ...

Ich möchte in der Lage sein, dies zu tun, während innerhalb der Klick-Ereignis von einigen anderen Dom-Objekt. Wie greife ich die td's id und ändern seine Klasse?

786voto

Nick Craver Punkte 609016

Verwendung von jQuery Sie können einstellen. die Klasse (unabhängig davon, was sie war ) durch Verwendung von .attr() etwa so:

$("#td_id").attr('class', 'newClass');

Wenn Sie möchten, dass hinzufügen. eine Klasse, verwenden Sie .addclass() stattdessen, etwa so:

$("#td_id").addClass('newClass');

Oder ein kurzer Weg, um Klassen zu tauschen mit .toggleClass() :

$("#td_id").toggleClass('change_me newClass');

Hier ist die vollständige Liste der jQuery-Methoden speziell für die class Attribut .

103voto

Fosco Punkte 37355

Ich glaube, Sie suchen das hier:

$('#td_id').removeClass('change_me').addClass('new_class');

33voto

jack Punkte 331

Ich glaube, er will einen Klassennamen ersetzen.

Etwas in der Art würde funktionieren:

$(document).ready(function(){
    $('.blue').removeClass('blue').addClass('green');
});

de http://monstertut.com/2012/06/use-jquery-to-change-css-class/

9voto

Alireza Masali Punkte 658

Das können Sie tun: $("#td_id").removeClass('Old_class'); $("#td_id").addClass('New_class'); Oder Sie können Folgendes tun

$("#td_id").removeClass('Old_class').addClass('New_class');

7voto

Trafalmadorian Punkte 2488

Sie wollen es also ändern, WENN es angeklickt wird ... lassen Sie mich den ganzen Prozess durchgehen. Nehmen wir an, dass Ihr "Externes DOM-Objekt" eine Eingabe ist, wie ein Select:

Beginnen wir mit diesem HTML:

<body>
  <div>
    <select id="test">
      <option>Bob</option>
      <option>Sam</option>
      <option>Sue</option>
      <option>Jen</option>
    </select>
  </div>

  <table id="theTable">
    <tr><td id="cellToChange">Bob</td><td>Sam</td></tr>
    <tr><td>Sue</td><td>Jen</td></tr>
  </table>
</body>

Einige sehr grundlegende CSS:

#theTable td {
    border:1px solid #555;
}
.activeCell {
    background-color:#F00;
}

Und richten Sie ein jQuery-Ereignis ein:

function highlightCell(useVal){
  $("#theTable td").removeClass("activeCell")
      .filter(":contains('"+useVal+"')").addClass("activeCell");
}

$(document).ready(function(){
    $("#test").change(function(e){highlightCell($(this).val())});
});

Wenn Sie nun etwas aus der Auswahl auswählen, wird automatisch eine Zelle mit dem passenden Text gefunden, so dass Sie den gesamten id-basierten Prozess unterlaufen können. Wenn Sie es auf diese Weise machen wollen, können Sie das Skript natürlich leicht ändern, um IDs statt Werte zu verwenden, indem Sie sagen

.filter("#"+useVal)

und vergewissern Sie sich, dass Sie die Kennungen entsprechend hinzufügen. Ich hoffe, das hilft!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X