2010-08-19 3 views
1

Merci pour votre attention et de temps.ne comprends pas cette ligne de JavaScript

Je suis modifier un JavaScript existant, mais ne peut pas comprendre une ligne de code. S'il vous plaît aidez-moi à comprendre cette ligne:

rowArray[i].value = rows[i].getElementsByTagName('td')[sortOn].firstChild.nodeValue; 

Je suis clair jusqu'à ce .getElementsByTagName('td'), sortOn est transmis dans cette fonction en tant que paramètre. Mais je ne pouvais pas comprendre [sortOn].firstChild.nodeValue;

S'il vous plaît me guide,

grâce

Répondre

1

rows[i].getElementsByTagName('td') va obtenir tous td éléments qui sont des enfants de rows[i]. La partie [sortOn] sélectionne le td dont l'index est spécifié par le paramètre sortOn. Le .firstChild.nodeValue obtient le texte contenu dans le premier élément de ce td.

Mise à jour: Dans les DOM, des éléments tels que <td> ne peut contenir d'autres éléments de l'enfant, mais ils n'ont pas la propriété de texte. Le texte lui-même est contenu dans un "nœud de texte" spécial qui est un enfant du nœud <td>. C'est pourquoi vous utilisez .firstChild pour obtenir le nœud de texte, puis utilisez .nodeValue pour obtenir le texte contenu dans ce nœud.

+0

grâce casablanca, il est utile. Pouvez-vous expliquer un peu plus expliquez .firstChild et .nodeValue séparément. Je suis confus quand sortOn va spacify la cellule que ce qui sera pour .firstChild.nodeValue? merci – haansi

+0

@haansi: J'ai mis à jour la réponse. – casablanca

1

getelementsByTagName renvoie un tableau d'élément avec la même balise, puis en utilisant la variable sortOn, vous sélectionnez une collection de formulaires spécifiée et vous prenez son premier enfant et vous y regardez.

2

[sortOn] est la notation de tableau. Cela fonctionne exactement de la même manière que les lignes [i]. Disons que sortOn est égal à 5, et qu'il y a sept éléments dans les rangées [i] .getElementsByTagName (« td »), qui est un tableau de <td> éléments. Ensuite, vous obtiendrez le sixième (les tableaux JavaScript sont basés sur 0), et ce sera un élément <td>.

firstChild signifie que le premier élément sous cette td, dans ce cas

<td><em>emphasis</em><strong>some text</strong></td> 

l'élément <em> est le premier enfant

nodeValue est dans ce cas, le contenu de cet élément, donc « l'accent » sera retourné.

Vous pouvez bien trouver le gecko DOM reference useful

8

.getElementsByTagName('td') - renvoie une liste d'éléments de TD.
.getElementsByTagName('td')[sortOn] - récupère un seul élément de cette liste
.firstChild - renvoie le premier élément qui est positionné à l'intérieur de cette TD.
.nodeValue: voir ici - https://developer.mozilla.org/En/DOM/Node.nodeValue

+0

merci AndreyKo, C'est utile. Je suis confus dans une chose. Quand [sortOn] va nous déplacer au td requis. Mais .firstChild je ne peux pas le comprendre. S'il vous plaît, aidez un peu plus. merci – haansi

+0

veuillez expliquer .firstChild - retourne le premier élément qui est positionné à l'intérieur de ce TD. Dans mon td il y aura un test. C'est pourquoi je suis confus pourquoi il est utilisé. Est-il possible que je puisse l'éviter et accéder directement au texte. S'il a un avantage, guide-moi. merci – haansi

Questions connexes