2016-04-29 4 views
-2

Der HTML-Code nicht definiert Zurückkehren, die ich zu klicken bin versuchtJavascript sichtbares Element

<button type="submit" class="flatbutton">Send</button>

var i; 
var button = document.getElementsByClassName("flatbutton"); 
    for (i = 0; i < button.length; ++i) { 
     if (button[i].type == "submit") { 
      console.log(button[i].innertext); 
     } 
    } 

Aus irgendeinem Grund alles, was zurückgegeben wird, nicht definiert ist. Dies macht keinen Sinn, es sollte "Senden" zurückgeben.

ich nur lieber verwenden Javascript und nicht JQuery

+2

es ist '.innerText' – Jhecht

+0

Wie können Sie Vanille JS über jQuery bevorzugen, wie haben Sie je jQuery probiert? – timmyRS

Antwort

0

Einfache Tippfehler in Ihrem Code sollte innertextinnerText

var i; 
 
var button = document.getElementsByClassName("flatbutton"); 
 
for (i = 0; i < button.length; ++i) { 
 
    if (button[i].type == "submit") { 
 
    console.log(button[i].innerText); 
 
    } 
 
}
<button type="submit" class="flatbutton">Send</button>

+0

Sie haben einen Platz zwischen '.innerText' gesetzt – Jhecht

+0

@Jhecht: Danke, aktualisiert !!! –

+0

Oh mein Gott ....... – Dgameman1

-1

ändern innertext zu innerText sein. Sie erhalten das gewünschte Ergebnis.

0

Wenn Sie ein einzelnes Klassenelement besser erhalten möchten, vermeiden Sie Schleifen. benutze das. Wenn Sie mehr als eine Klasse haben, verwenden Sie Schleifen.

<button type="submit" class="flatbutton">Send</button> 
var button = document.getElementsByClassName("flatbutton")[0].innerText; 
console.log(button); 
0

Man könnte es in jQuery wie folgt tun:

$(".flatbutton[type='submit']").each(function() 
{ 
    console.log($(this).html()); 
}); 

Oder Sie einfach alles komplizierter machen von Vanille JS mit:

var btns = document.getElementsByClassName("flatbutton"); 
for(var i=0;i<btns.length;i++) 
{ 
    var btn=btns[i]; 
    if(btns.getAttribute("type") == "submit") 
    { 
     console.log(btn.innerHTML); 
    } 
} 
0

Statt

Konsole .log (Knopf [i] .Innertext);

Verwenden

console.log (Taste [i] .textContent);

0

Sie können ein Datenattribut für die Schaltfläche festlegen und den Wert von dort abrufen. so.

<button type="submit" class="flatbutton" data-value="send" >Send</button> 

var buttonvalue = document.getElementsByClassName("flatbutton").data.value; 

Warum nicht von JQUERY? Oder Sie können versuchen, den "send" -Wert zu holen, indem Sie .value wie folgt ausprobieren.

 var i; 
     var button = document.getElementsByClassName("flatbutton"); 
     for (i = 0; i < button.length; ++i) { 
     if (button[i].type == "submit") { 
     console.log(button[i].value); 
     } 
     }