javascript - bootstrap - html5 audio player with playlist free
jQuery: exclut les enfants de.text() (3)
Dupliquer possible:
jquery exclut certains nœuds enfants de .text ()
Compte tenu de ce code HTML:
<a href="#" class="artist">Soulive<span class="create-play">Play</span></a>
Je veux obtenir le contenu du texte de la (qui est dans le contexte de ma fonction) sans le contenu du texte de la span
, donc il me reste:
Soulive
Si je fais:
$(this).text();
Je reçois:
SoulivePlay
Comment exclure le contenu du texte de la span
?
https://ffff65535.com
Un micro-plugin:
$.fn.ignore = function(sel){
return this.clone().find(sel||">*").remove().end();
};
... ayant ce HTML:
<div id="test"><b>Hello</b><span> World</span>!!!</div>
aura pour résultat:
var text = $('#test').ignore("span").text(); // "Hello!!!"
var html = $('#test').ignore("span").html(); // "<b>Hello</b>!!!"
si vous le voulez plus rapidement et que vous n'avez qu'à exclure les enfants immédiats ... utilisez .children(
au lieu de .find(
$(this).contents().filter(function() {
return this.nodeType == 3;
}).text()
$(this).clone().find('span').remove().end().text();
sinon, avec une approche différente, si vous êtes sûr que vos éléments span
contiennent toujours le mot "play" à la fin, utilisez simplement une fonction replace()
ou une substring()
- substring()
, par exemple
var text = $(this).text();
text = text.substring(0, text.length-4);
le dernier exemple est une méthode trop localisée et pas à toute épreuve, mais je l'ai mentionné juste pour proposer une solution d'un point de vue différent