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!