11485 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je dois déterminer la value d'un élément par son contenu. (exemple: trouver la value d'un élément contenant le mot "Medium")
Je traite ici avec cette ligne:

<option value="54055">Medium</option>


Je ne connais pas de sélecteur permettant de faire cela. Je traite avec node JS et j'ai une extension me permettant de faire directement .evaluate
J'ai déjà entendu que .evaluate pouvais me permettre de trouver un élément par son contenu. Mais après documentation j'ai pas vraiment trouvé de solution.

cordialement,
matt
Il n'y a pas de sélecteur permettant de trouver un nœud pas son contenu.
Tu peux faire ceci (en pur Javascript)

function findNode(tag, content) {
    var nodes = document.querySelectorAll(tag);
    for(var i = 0; i < nodes.length; i++) {
        var curNode = nodes[i];
        if(curNode.innerText == content) return curNode;
}
......
var value = '';
var optionNode = findNode('option', 'Medium');
if(optionNode) value = optionNode.value;

Modifié par PapyJP (03 Jun 2019 - 14:40)
EDIT : voir mon poste plus bas, celui ci est erroné.
_________________________

Salut

En jquery tu peux faire comme cela

var element = $("option[value='Medium']");

Modifié par JENCAL (03 Jun 2019 - 17:24)
JENCAL a écrit :
Salut

En jquery tu peux faire comme cela

var element = $("option[value='Medium']");

Ce n’est pas l’attribut valeur qui contient "Médium", c’est le contenu de la balise.
PapyJP a écrit :

Ce n’est pas l’attribut valeur qui contient "Médium", c’est le contenu de la balise.


Oula, merci ! Smiley smile

du coup ça change !

var element = $("option:contains('Medium')");