Maison > Questions et réponses > le corps du texte
<p class="mui-media-body js-media-body js-anviz-body">Trouble Ticket
<p class="anviz-ellipsis js-des">You can sumbit your trouble and …</p>
</p>
Comment écrire juste pour obtenir un Trouble Ticket ? Merci
某草草2017-06-26 10:52:49
Il est préférable d'ajouter une étiquette pour l'emballer pour un accès facile
PHP中文网2017-06-26 10:52:49
var val = jQuery(this).find('.js-anviz-body')[0].firstChild.data;
D'accord!
習慣沉默2017-06-26 10:52:49
Clonez d'abord l'élément, puis supprimez les éléments enfants et enfin obtenez le texte sans éléments enfants
jQuery('.js-anviz-body').clone().children().remove().end().text()
我想大声告诉你2017-06-26 10:52:49
J'ai déjà répondu à une question similaire. Lors de la traversée de nodeChild, ce texte est une instance de Text()
Vous pouvez vous référer à la question à laquelle j'ai répondu auparavant : /q/10...
大家讲道理2017-06-26 10:52:49
<html>
<head>
<title></title>
<style type="text/css">
.parent{
width:100px;
height:100px;
}
.child{
width:100px;
height:50px;
}
</style>
</head>
<body>
<p class="parent">
hello world,
<p class="child">welcome!</p>
</p>
<script>
var text = document.querySelector('.parent').firstChild.nodeValue;
console.log(text);
</script>
</body>
</html>
曾经蜡笔没有小新2017-06-26 10:52:49
Pour comprendre la question, vous souhaitez probablement obtenir tout le texte qui appartient à l'élément parent mais n'appartient pas à l'élément enfant
En supposant que vous connaissez la position du texte, c'est plus simple, si le texte est au début :
//pp = """<p class="mui-media-body js-media-body js-anviz-body">Trouble Ticket
<p class="anviz-ellipsis js-des">You can sumbit your trouble and …</p>
</p>"""
var childNodes = pp.childNodes;
var text = childNodes[0]; // Trouble Ticket
Si la position du texte est incertaine, voire s'il y en a plusieurs, alors il faut parcourir les éléments enfants de l'élément parent et trouver tous les éléments dont les attributs de nœud sont du texte :
//pp = """<p class="mui-media-body js-media-body js-anviz-body">
Trouble Ticket
<p class="anviz-ellipsis js-des">You can sumbit your trouble and …</p>
Trouble Ticket2
</p>"""
var childNodes = pp.childNodes;
var textNodes = [];
childNodes.forEach(function(node){
if (node.nodeType === 3) {
textNodes.push(node);
} // 3 为 文本
});
//textNodes === ['Trouble Ticket', 'Trouble Ticket2']
ringa_lee2017-06-26 10:52:49
La méthode de clonage ci-dessus est meilleure. Que se passe-t-il s'il y a du texte derrière la balise p ?
L'utilisation de firstChild n'obtient que le premier nœud de texte, et il doit être parcouru pour obtenir les nœuds de texte suivants.
大家讲道理2017-06-26 10:52:49
var content = $('.anviz-ellipsis').parent().html().replace(/<[\s\S]*>/g, '');
console.log(content);
打印结果:
// Trouble Ticket
Code HTML :
<p class="mui-media-body js-media-body js-anviz-body">Trouble Ticket
<p class="anviz-ellipsis js-des">
You can sumbit your trouble and …
<!-- 混淆代码1 start-->
<p>sdkfjfjfdlkfjsld</p>
<a href="">3w33333</a>
<!-- 混淆代码1 end-->
</p>
<!-- 混淆代码2 start-->
<img src="" alt="">
<a href="">sdfsjflsjdflskdjf</a>
<p>
</p>
<!-- 混淆代码2 end-->
</p>
code js :
<script>
var content = $('.anviz-ellipsis').parent().html().replace(/<[\s\S]*>/g, '');
console.log(content);
</script>