すべてのinput
オブジェクトを取得し、onclick
パラメーターを操作する必要があります。
以下は、<a>
リンク。 input
タグについてこのようなものを探しています。
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);";
}
}
(回答の最後に更新を参照してください。)
NodeList
のすべてのinput
要素の getElementsByTagName
を取得できます( DOM仕様 、 [〜#〜] mdc [〜#〜] 、 [〜#〜] msdn [ 〜#〜] )、単純にループします:
var inputs, index;
inputs = document.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
// deal with inputs[index] element.
}
そこで、document
でそれを使用しました。これはドキュメント全体を検索します。また、個々の要素( DOM仕様 )にも存在するため、ドキュメント全体ではなく、子孫のみを検索できます。例:
var container, inputs, index;
// Get the container element
container = document.getElementById('container');
// Find its child `input` elements
inputs = container.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
// deal with inputs[index] element.
}
...しかし、親form
を使用したくないと言ったので、最初の例はあなたの質問により適しています(2番目は、この答えを見つける誰かが知る必要がある場合に備えて、完全性のためだけにあります)。
更新:getElementsByTagName
は上記を行うための絶対に素晴らしい方法ですが、すべてのinput
要素の代わりにすべてのチェックボックスを見つけるなど、少し複雑なことをしたい場合はどうでしょうか?
そこで便利なquerySelectorAll
が登場します。必要なCSSセレクターに一致する要素のリストを取得できます。したがって、チェックボックスの例では:
var checkboxes = document.querySelectorAll("input[type=checkbox]");
要素レベルでも使用できます。たとえば、div
変数にelement
要素がある場合、このspan
内にあるクラスfoo
を持つdiv
をすべて見つけることができます。
var fooSpans = element.querySelectorAll("span.foo");
querySelectorAll
とそのいとこquerySelector
(リストを提供する代わりにfirstに一致する要素を見つける)は、すべての最新のブラウザー、およびIE8でサポートされています。
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; ++i) {
// ...
}
querySelectorAll は、独自の forEach メソッドを持つNodeListを返します。
document.querySelectorAll('input').forEach( input => {
// ...
});
getElementsByTagName は、NodeListの代わりにHTMLCollectionを返すようになりました。したがって、最初にそれを array に変換して、mapや forEach などのメソッドにアクセスする必要があります。
Array.from(document.getElementsByTagName('input')).forEach( input => {
// ...
});