2016-12-23 5 views
0

私のすべての入力と選択要素を自分のページのHTMLから取り出したいと思っています。私はgetElementsByTagName('input,select')を試しましたが、動作しません。getElementsByTagName複数のタグ

私のコードをHTMLとJavaScript:

function myFunction() { 
 
var data = []; 
 
var data1 = []; 
 
var data2 = []; 
 
for (var i = 0; i < 10; ++i) { 
 

 
    \t 
 
var x = document.getElementsByTagName("INPUT,SELECT")[i].getAttribute("name"); 
 
var y = document.getElementsByTagName("INPUT,SELECT")[i].getAttribute("type"); 
 
var z = document.getElementsByTagName("INPUT,SELECT")[i].getAttribute("maxlength"); 
 
    data.push(x); 
 
    data1.push(y); 
 
    data2.push(z); 
 
    location.href ="ttt.php?name=" + data + "&active=" + data1 + "&data2=" + data2 
 
} 
 

 
}
<select name="CIV"><option selected="selected" value=""></option><option selected="selected" value="">Mr</option><option selected="selected" value="">Mme</option></select> 
 
<input type="text" size="20" name="first_name" id="first_name" maxlength="50" class="cust_form" value=""> 
 
<input type="text" size="20" name="last_name" id="last_name" maxlength="50" class="cust_form" value=""> 
 
<input type="text" size="20" name="address3" id="address3" maxlength="50" class="cust_form" value="">

+0

最初に、要素タグをカンマで区切って 'getElementsByTagName'に渡すことはできません。あなたは何を達成しようとしていますか?あなたのアプローチを変更する必要があります。 –

+0

私がしたいのは、すべての入力と名前を取得することです。私がvar xをテストするとき= document.getElementsByTagName( "INPUT")[i] .getAttribute( "name");入力を返すだけです。しかし、私は入力が必要で、選択も必要です。あなたがURLを介してvaraiblesを送った後 –

+0

あなたはそれらを別々に得ることができます。あなたの最良の賭けは、それらを別々に取得し、2つのコレクションをマージすることです。要約は、あなたがやっていることはまったく間違っているということです。あなたは、あなたがしたようにURL経由で配列を送ることはできません。あなたが得るのは 'urlに渡すすべての' data'と 'data1'の代わりに' [object Object] 'です。私はあなたがまずJavaScriptを理解し、それがDOM上の値を操作する上でどのように役立つ必要があると思います。 –

答えて

0

は個別の要素にアクセスする必要があります。 INPUTおよびSELECT。ところで、Select要素にはtypemaxlengthという属性はありません。

function myFunction() { 
    var nameData = []; 
    var typeData = []; 
    var maxLengthData = []; 
    var input = document.getElementsByTagName("INPUT") 
    var select = document.getElementsByTagName("SELECT") 

    // Targeting the first 9 of elements of input collections and select collections 
    // Assuming you understand what you are doing here 
    for (var i = 0; i < 10; ++i) { 
    nameData.push(input[i].getAttribute('name')); 
    nameData.push(select[i].getAttribute('name')); 
    typeData.push(input[i].getAttribute('type')); // Select element doesn't have type attribute 
    maxLengthData.push(inputt[i].getAttribute('maxlength')); // Select elemnt doesn't have maxlength attribute 

    // Assuming you understand what you are doing to build your url here 
    location.href ="ttt.php?name=" + nameData + "&active=" + typeData + "&data2=" + maxLengthData 
    } 

} 

HTML要素とその属性について詳しくは、こちらをご覧ください。また、純粋なJavaScriptについてもっと読む。

注:これはまだテストされていません。それを試して、それがあなたがしたいことをしているかどうかを教えてください。