web-dev-qa-db-fra.com

pourquoi je ne peux pas obtenir la valeur de label avec jquery et javascript?

J'ai une étiquette habituelle

<label class="mytxt"  style="color: #662819;" id ="telefon"></label>

Je suis réglage une valeur comme celle-ci:

document.getElementById('telefon').innerHTML = userDetails.phone;

après une étiquette a une valeur comme "123".

Dans un pagesource, j'ai une étiquette sans valeur définie à l'intérieur de "> <" mais je vois comme sortie bien:

pagesource: <label class="mytxt"  style="color: #662819;" id ="telefon"></label>

Mon problème est quand j'aime OBTENIR une valeur. J'ai essayé des standards comme:

value = $("#telefon").val(); 
document.getElementById('telefon').value 

rien ne fonctionne, la valeur est toujours "non définie". Pourquoi est-ce le cas, même si je le vois dans le navigateur?

30
r.r

Vous avez besoin de text() ou html() pour une étiquette non val() La fonction ne doit pas être appelée pour une étiquette; elle est utilisée pour obtenir des valeurs d'entrée telles que du texte ou une case à cocher, etc.

Changement

value = $("#telefon").val(); 

À

value = $("#telefon").text(); 
64
Adil

Les étiquettes ne sont pas des éléments de formulaire. Ils n'ont pas de value. Ils ont innerHTML et textContent.

Ainsi,

$('#telefon').html() 
// or
$('#telefon').text()

ou

var telefon = document.getElementById('telefon');
telefon.innerHTML;

Si vous êtes commencez avec votre élément de formulaire, consultez la liste labels de celui-ci. C'est,

var el = $('#myformelement');
var label = $( el.prop('labels') );
// label.html();
// el.val();
// blah blah blah you get the idea
8
Dan Heberden