Ne peut pas Obtenir un Texte à l'Intérieur d'un <td> Avec jQuery
J'ai un <td>
élément comme celui-ci:
<td class="right editable qty">100</td>
Je veux obtenir la valeur à l'intérieur qu' ( 100
), mais a eu quelques problème.
Voici mon script:
$('#example tbody tr td.qty').change(function () {
var sQty = $(this);
console.log(sQty); //print [<td class="right editable qty">100</td>]
console.log($.text(sQty)); //print nothing
console.log(sQty.val()); //print nothing
console.log(sQty.text()); //print nothing
console.log(sQty.html()); //print <form><input style="width: 100%; height: 100%; " autocomplete="off" name="value"></form>
});
Est qu'il manque quelque chose avec mon script?
Je travaille avec: DataTables et jeditable
- TD éléments ne permettent pas de déclencher le changement de l'événement. Vous pouvez utiliser le clic.
- Mise à jour de la question.
- Vous pouvez utiliser la méthode de clic. jsfiddle.net/RJCxt/3
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la valeur avec
$(selector).text();
Changement
À
conseils: à partir de .changement documentation
pour obtenir le texte avec
.text()
change
pour untd
élément ????<td>
avec le mêmeclass
attribut, il permet d'imprimer les autres<td>
valeur à l'exception de la modification de la<td>
.J'écris ceci au cas où quelqu'un trouve cette question
Lorsque vous essayez de sélectionner différentes
<td>
, afin d'obtenir (ou l'ensemble) de chaque valeur de la plusieurs<td>
balises, comme ceci:Si vous utilisez
.text()
,.val()
ou.html()
, comme suit:Javascript renvoie une erreur, le retour "[méthode] n'est pas une fonction".
Dans ce cas, le solution est d'utiliser
.textContent
:Espère que cela aide certains d'entre vous.
Tout d'abord
td
n'a pas unechange
d'utilisation des biensclick
au lieuhiii ami,
Vous pouvez simplement obtenir la valeur de colonne de table de table de de ligne en sélectionnant la colonne avec le nom de classe(.righteditableqty), puis sélectionner le texte avec la .texte() fonction.
ou de l'utilisation de ce script:
$(".righteditableqty").Text()
Lorsque j'essaie d'exécuter le
jEditable
gestionnaires etchange
événements (à la question ci-dessus), j'ai trouvé que lechange
événements seront déclenchement de la première et après que lejEditable
gestionnaires. Ce que lejEditable
les gestionnaires à faire est de retourner levalue
et mis dans la cellule qui a été modifier.Pour la valeur par défaut de la table de la cellule sera ressembler à ceci:
<td class="right editable qty">1</td>
Lorsque je clique sur la cellule, il va générer cette forme:
Comme nous le voyons, la valeur de la cellule est de disparaître (Ce formulaire j'ai eu lors de la tentative d'inspecter l'élément avec firebug). Et quand j'essaie de modifier la valeur de la
input
élément à l'intérieur de laform
firebug ne montrent rien changer à tous (la valeur est caché quelque part). Alors, quand j'appuie sur leEnter
bouton je me rends compte quechange
événement sera le déclencheur de la première et à ce moment, les<td>
éléments est toujours vide, c'est pourquoi lorsque nous essayons d'imprimer la valeur est toujours vide.Ainsi, au lieu de l'aide de l'
change
événements pour obtenir la valeur, je suis en utilisant lejEditable
gestionnaires avant elle renvoie la valeur dans la cellule (le gestionnaire sera déclencher si l'on presse leEnter
bouton).