2011-06-19 1 views
1
<span id="myId" class="myClass">Sample text</span>

Je voudrais obtenir l'ID ou la classe d'une chaîne particulière dans une page HTML en utilisant la valeur de texte, dans ce cas « Exemple de texte ». Y a-t-il un moyen de le faire?Comment obtenir l'ID de wrapper ou classe d'une chaîne

+0

Qu'est-ce qu'un wrapper? Cherchez-vous l'élément parent dans DOM? – binfalse

Répondre

2

En utilisant jQuery, il est très simple:

var searchText = 'Sample text', 
    $element = $('span:contains(' + searchText ')'), 
    id = $element.attr('id'), 
    className = $element.attr('class'); 

Ce n'est pas concis JS strictement vanille.

var spans = document.getElementsByTagName('span'), 
    element, 
    text, 
    re = /Sample Text/, 
    // IE doesn't support textContent, FF doesn't support innerText 
    prop = document.body.innerText ? 'innerText' : 'textContent'; 

for (var i=0; i<spans.length; i++) 
{ 
    if (re.test(spans[i][prop])) 
    { 
     span = spans[i]; 
     break; 
    } 
} 

var id, className; 
if (span) 
{ 
    id = span.id; 
    className = span.className; 
} 
+0

bonne réponse, cependant, j'espérais pour celui qui aurait passé un peu de temps sur une réponse non-jQuery. Pourquoi? Parce que c'est possible. –

+0

Doit être classe non className – locrizak

+0

@Caspar déjà ajouté. –

Questions connexes