Holen Sie sich eine Liste aller Eingabeobjekte mit JavaScript, ohne auf ein Formularobjekt zuzugreifen
Ich brauchen, um alle input
Objekte und manipulieren die onclick
param.
Folgende macht den job für <a>
links. Für so etwas suchen für input
tags.
for (var ls = document.links, numLinks = ls.length, i=0; i<numLinks; i++){
var link = unescape(ls[i].href);
link = link.replace(/\\'/ig,"#");
if(ls[i].href.indexOf("javascript:") == -1)
{
ls[i].href = "javascript:LoadExtern(\\""+link+"\\",\\"ControlPanelContent\\",true,true);";
}
}
Kommentar zu dem Problem
Autsch, das ist hässlich und hat mehrere der Flucht Probleme. Sie wollen nicht jemals verwenden Sie
javascript
- URLs. Mein Vorschlag für diesen bestimmten code: verlassen Sie die href
wo es ist und stattdessen setzen Sie einfach die ls[i].onclick= function() { LoadExtern(dies.href, 'ControlPanelContent', true, true); };
. InformationsquelleAutor der Frage Jeremy Gwa | 2010-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Siehe update am Ende der Antwort.)
Können Sie sich einen
NodeList
allerinput
Elemente übergetElementsByTagName
(DOM-Spezifikation, MDC, MSDN), dann einfach eine Schleife durch:Dort habe ich es auf die
document
, die Suche im gesamten Dokument. Es gibt Sie auch auf einzelne Elemente (DOM-Spezifikation), so dass die Suche nur Ihre Nachkommen, anstatt das gesamte Dokument, z.B.:...aber Sie haben gesagt, dass Sie nicht wollen, verwenden die übergeordnete
form
, also das erste Beispiel ist eher für deine Frage (die zweite ist nur da, der Vollständigkeit halber, falls jemand anderes finden, diese Antwort kennen muss).Update:
getElementsByTagName
ist eine absolut feine Art zu tun, die oben, aber was, wenn Sie wollen, etwas zu tun, etwas komplizierter, wie die Suche nach alle Checkboxen anstatt alleinput
Elemente?Wo ist die nützliche
querySelectorAll
kommt: Es ermöglicht uns, eine Liste der Elemente, jeder CSS-Selektor-wir wollen. Also für unsere Checkboxen Beispiel:Können Sie es auch verwenden, auf die element-Ebene. Zum Beispiel, wenn wir eine
div
element in unsererelement
variable, die wir finden können, allespan
s mit der Klassefoo
, die drinnen sind, diediv
wie diese:querySelectorAll
und seine CousinequerySelector
(die findet Sie einfach ersten übereinstimmenden element stattdessen geben Sie eine Liste) unterstützt von allen modernen Browsern und auch IE8.InformationsquelleAutor der Antwort T.J. Crowder
InformationsquelleAutor der Antwort Pointy