2017-10-29 2 views
0

Warum kann ich einen ID-Wert mit # erhalten, kann aber keinen Klassenwert mit bekommen. ab: $ (button#${value}) .val() -> arbeitetWert einer Klasse erhalten

$ (button.${value}) .val() -> funktioniert nicht.

+3

Schaltflächenelemente haben keinen Wert. – trincot

Antwort

0

Der JQ-Selektor wählt ein Objekt aus dem DOM aus, und Sie versuchen, den Wert dieses Objekts abzurufen. In diesem Fall haben Sie ein Objekt ohne Wert ausgewählt.

+0

aber das würde seit meiner Situation nicht machen. Ich habe einen Wert, weil es mit einer ID funktioniert, aber wenn ich es zur Klasse ändere, wird es nicht laufen. –

+0

In diesem Fall könnte es bedeuten, dass JQ ein Array anstelle eines einzelnen Werts zurückgibt, da es die Möglichkeit mehrerer Elemente mit derselben Klasse erwarten muss. – TecBrat

1

Wenn Ihr button Element keine value Eigenschaft hat, gibt val() die leere Zeichenfolge zurück.

Aber wenn Sie ein value Attribut auf Ihr button Element setzen funktioniert es, wie dieser Ausschnitt zeigt:

var valueA = "a", valueB = "b"; 
 
console.log($(`button#${valueA}`).val()); 
 
console.log($(`button.${valueB}`).val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="a" class="b" value="hello">click</button>

Oder, wenn Sie zum Beispiel nehmen den Text der Schaltfläche (.text()), dann funktioniert es auch:

var valueA = "a", valueB = "b"; 
 
console.log($(`button#${valueA}`).text()); 
 
console.log($(`button.${valueB}`).text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="a" class="b" value="hello">click</button>

+0

* "Schaltflächenelemente haben keine Werteigenschaft" *. Ich bin hier verwirrt, bist du sicher? MDN sagt das Gegenteil: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button –

+0

hmm, ich muss mir das genau ansehen. Ich werde es versuchen und sehen, wie es läuft. –

+0

Gleichzeitig möchte ich nicht auf der Seite drucken. Ist das was .text()? Ich mache ein Kartenspiel, also muss ich wissen, wenn der Benutzer den gleichen Wert trifft. –

Verwandte Themen