DOM/Javascript:获取标签后的文本

发布于 2025-01-07 05:57:28 字数 428 浏览 0 评论 0原文

如何获取 html 文档中标签后面的文本“那里”:

<p><a>hello</a>there</p>

我看到有一种方法可以使用 xpath 来实现:

从下一个标签获取文本

但我没有使用 xpath,并且希望不必为此开始。我意识到我可以获取 p 标签内的所有文本,但我只想获取“there”文本,并了解它与 p 和 a 标签的关系。它似乎不是任何人的孩子或兄弟姐妹。 (您可以假设我可以获得任何其他元素/节点,因此它可以与这些元素/节点相关。)每个 DOM 教程似乎都忽略了文本可以出现在标签外部的事实。

谢谢。

How do I get the text "there" that comes after a tag in an html document:

<p><a>hello</a>there</p>

I see that there is a way to do it with xpath:

Get text from next tag

but I'm not using xpath and am hoping not to have to start just for this. I realize that I can get ALL the text inside the p tag, but I want to get just the "there" text, as well as know its relationship to the p and a tags. It doesn't seem to be anyone's child or sibling. (You can assume that I can get any of the other elements/nodes so it can be relative to those.) Every DOM tutorial seems to ignore the fact that text can occur outside tags.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

素衣风尘叹 2025-01-14 05:57:28

您可以使用多种方式来获取标签和文本

let p = document.querySelector('p'); // first p on the page
console.log(p.lastChild.textContent)

let ps = document.querySelectorAll('p'); // all p on the page
console.log(ps[0].lastChild.textContent)

// using tagName
p = document.getElementsByTagName('p')[0];
console.log(p.childNodes[1].textContent)
<p><a>hello</a>there</p>

You can use several ways to get the tag and the text

let p = document.querySelector('p'); // first p on the page
console.log(p.lastChild.textContent)

let ps = document.querySelectorAll('p'); // all p on the page
console.log(ps[0].lastChild.textContent)

// using tagName
p = document.getElementsByTagName('p')[0];
console.log(p.childNodes[1].textContent)
<p><a>hello</a>there</p>

十六岁半 2025-01-14 05:57:28

使用这个.. http://jsfiddle.net/2Dxy4/

这是你的HTML -

<p id="there">
   <a>hello</a>
   there
</p>​

在你的JS

alert(document.getElementById("there").lastChild.textContent)​

alert(document.getElementById("there").childNodes[1].textContent)​

use this .. http://jsfiddle.net/2Dxy4/

This is your HTML --

<p id="there">
   <a>hello</a>
   there
</p>​

In your JS

alert(document.getElementById("there").lastChild.textContent)​

or

alert(document.getElementById("there").childNodes[1].textContent)​
野味少女 2025-01-14 05:57:28

您可以使用lastChild和textContent来获取它: http://jsfiddle.net/M3vjR/

You can use lastChild and textContent to get it: http://jsfiddle.net/M3vjR/

故事↓在人 2025-01-14 05:57:28

好吧,如果你使用 jQuery,有一种偷偷摸摸的方法可以得到这个

x = $("

hellothere

")
x.contents()[1]

Well if you use jQuery there is a sneaky way to get this

x = $("<p><a>hello</a>there</p>")
x.contents()[1]

等风也等你 2025-01-14 05:57:28

您可以找到父标签的子标签:

var pTag = ...
var childNodes = pTag.childNodes;

最后,您可以在 a 节点之后的 text 节点中找到您的文本。

You can find children tags of your parent tag:

var pTag = ...
var childNodes = pTag.childNodes;

Finally you can find your text in a text node after a node.

胡渣熟男 2025-01-14 05:57:28

您必须首先获取属性innerhtml,然后使用子字符串获取总innerhtml,您可以拥有您的部分..

$(document).ready(function () {
var getA=$("p >a").text();
var getA=getA.length;
var takeTotal=$("p").text();
var result=takeTotal.substring(get);
alert(result);
});

You have to first get the a attribute innerhtml then take total innerhtml with using substring you can have your there part ..

$(document).ready(function () {
var getA=$("p >a").text();
var getA=getA.length;
var takeTotal=$("p").text();
var result=takeTotal.substring(get);
alert(result);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文