2017-05-12 1 views
0

Ich bin neu in Javascript und Webentwicklung, also ist dies eine ziemlich grundlegende Frage (obwohl ich herumgesucht habe). Ich muss auf eine Tabelle zugreifen, die viele Spalten enthält, von denen eine Zeilen mit den Namen von Personen enthält. In jeder Zeile für den Text die ID, die die Namen der Person hält, ist Setup wie dieseZugriff auf Elemente auf einer Webseite mit IDs, die eine bestimmte Zeichenfolge enthalten

<span class="PSLONGEDITBOX" id = "MTG_INSTR$2"> JOHN DOE </span> == $0 

in der nächsten Zeile ist es es wie dies

<span class="PSLONGEDITBOX" id = "MTG_INSTR$3"> BOB DAVID </span> == $0 

Also, um durch alle Elemente zu durchlaufen wäre die Namen enthalten, kann ich trotzdem einfach über alle IDs iterieren, die "MTG_INSTR" enthalten? Wenn nicht, wie würden Sie es angehen?

haben auch keine Ahnung, was das $ 0 am Ende == hat

+0

Mögliche Duplikat [Alle Elemente, deren ID beginnt mit einem gemeinsamen string] (http://stackoverflow.com/questions/10111668/find-all-elements-whose-id-begins-with-a -common-string) – Liam

+0

Oder besser yes [Get Element für Teil von Name oder ID] (http://stackoverflow.com/questions/15874630/js-get-element-by-part-of-name-or-id) – Liam

Antwort

1

Versuchen document.querySelectorAll mit 'span[id^="MTG_INSTR"]' Selektor:

var els = document.querySelectorAll('span[id^="MTG_INSTR"]'); 
 

 
console.log(els); 
 
els.forEach(x => console.log(x.innerText));
<span class="PSLONGEDITBOX" id = "MTG_INSTR$2"> JOHN DOE </span> 
 
<span class="PSLONGEDITBOX" id = "MTG_INSTR$3"> JOHN DOE </span> 
 
<span class="PSLONGEDITBOX" id = "NMTG_INSTR$2"> JOHN DOE </span>

Denken Sie daran, Sie können auch das gleiche Ergebnis Auswahl erreichen durch die Klasse:

var els = document.getElementsByClassName("PSLONGEDITBOX"); 
 

 
console.log(els); 
 

 
var els = document.querySelectorAll(".PSLONGEDITBOX"); 
 

 
console.log(els);
<span class="PSLONGEDITBOX" id = "MTG_INSTR$2"> JOHN DOE </span> 
 
<span class="PSLONGEDITBOX" id = "MTG_INSTR$3"> JOHN DOE </span> 
 
<span class="PSLONGEDITBOX" id = "NMTG_INSTR$2"> JOHN DOE </span>

+0

Funktioniert nicht, denke ich, weil der Text tief in einer Tabelle ist? Ich habe auch versucht, nur den Namen einer einzelnen Person mit 'span [id = "MTG_INSTR $ 1"]' aber trotzdem scheint els leer zu sein (Länge 0). Ich bin ziemlich sicher, dass der Wert des Dokuments korrekt ist, da, wenn ich es in der Konsole auswerte es zeigt mir das DOM der Webseite (eigentlich verbrachte alle gestern diesen Teil zu arbeiten). – Sentinel

Verwandte Themen