2017-01-17 12 views
1

以下は達成したいテストコードです。キャンセルをクリックすると、送信ボタンの値がわかります。ここで私はループのために使用している。反復しないで他の方法がありますか?javascriptを使用して最も近いサブミットボタンを取得するには

<!DOCTYPE html> 
<html> 
<body> 
<ol> 
    <input type="text" name="txt1"> 
    <input type="text" name="txt2"> 
    <input type="text" name="txt3"> 

    <li><input type="button" value="cancel" name="cancel" onclick="myFunction()"></li> 
    <li><input type="button" value="undo" name="undo"></li> 
    <li><input type="submit" value="send mail" name="submit"></li> 
</ol> 
<script> 
function myFunction() { 
    var elementsLI = document.getElementsByTagName('li'); 
    var length = document.getElementsByTagName('li').length; 

    for(var i = 0; i <= length ; ++i){ 
     if(elementsLI[i].childNodes[0].type == "submit"){ 
      alert(elementsLI[i].childNodes[0].value); 
     } 
     //var y = elementsLI.childNodes[i].type == "submit"; 
    } 
} 
</script> 

</body> 
</html> 
+1

ない有効なマークアップ –

+0

なぜあなただ​​けのようなidは「提出する」と(「提出」)のdocument.getElementByIdでそれを検索し送信ボタンを与えることはありません。 ? –

+0

これは動的に生成され、私はそれらを変更できません。任意の要素にIDがありません – Suyash

答えて

1

あなたはattribute equals selectorquerySelector()メソッドを使用してそれを得ることができます。

var submit = document.querySelector('li [type="submit"]'); 
+1

ありがとうpranav ....それは動作します! – Suyash

関連する問題