Cela devrait être assez simple, mais le code suivant ne fait rien pour changer le texte de l'étiquette suivante. J'ai essayé d'utiliser .text, .html et ainsi de suite en vain. Y a-t-il un problème avec ce code?
<script type="text/javascript">
$(document).ready(function()
{
$("input:checkbox").on("change", checkboxChange);
function checkboxChange()
{
$("#"+this.id).next("label").text("TESTTTT");
}
});
</script>
<td width="15%" align="center"><input type="checkbox" name="task1" id="task1"></td>
<td width="25%" align="center"><label for="task1"></label></td>
La case à cocher est dans un td
, il faut donc d'abord obtenir le parent:
$("input:checkbox").on("change", function() {
$(this).parent().next().find("label").text("TESTTTT");
});
Alternativement, trouvez une étiquette qui a un for
avec le même id
(peut-être plus performant que la traversée inverse):
$("input:checkbox").on("change", function() {
$("label[for='" + $(this).attr('id') + "']").text("TESTTTT");
});
Ou, pour être plus succinct, juste this.id
:
$("input:checkbox").on("change", function() {
$("label[for='" + this.id + "']").text("TESTTTT");
});
Je voudrais simplement rechercher l'attribut for
au lieu de récursif de façon répétitive l'arborescence DOM.
$("input:checkbox").on("change", function() {
$("label[for='"+this.id+"']").text("TESTTTT");
});