当前位置: 首页 > 知识库问答 >
问题:

JavaScript获取不包括子项的文本内容

班安平
2023-03-14

首先,我正在为JavaScript创建一个库,但我不能使用jQuery。我试图获取一个HTML元素的文本内容,而不包含其子元素的文本内容。

innerText和textContent属性都没有提供所需的内容,请帮助。

共有3个答案

秦滨海
2023-03-14
var mydiv = getElementByID("id");
function Get_text(element) {
    var selected = element.cloneNode(true);
    var text;
    while (selected.firstChild) {
      if (selected.firstChild.nodeType == 3) text = selected.firstChild.nodeValue;
      selected.removeChild(selected.firstChild);
    }
    return text;
  }
Get_text(mydiv);
尉迟默
2023-03-14

从以下元素(不包括

<div class="details__instructor">
    Author's Name<span ng-show="job_title">, Entrepreneur</span>
</div>

使用childNodes[0]。例如:

document.querySelector('div.details__instructor').childNodes[0]

结果是一个对象:

"Author's Name"

更新:答案被否决,没有任何评论。在生产中使用之前,确定该方法的有效性。

百里伟
2023-03-14

您可以使用DOMAPI作为子节点和节点类型来解决这个问题。

var elChildNode = document.querySelector("#hello").childNodes;
var sChildTextSum = "";

elChildNode.forEach(function(value){
    if(value.nodeType === Node.TEXT_NODE) { 
        console.log("Current textNode value is : ", value.nodeValue.trim());
        sChildTextSum += value.nodeValue;
    }
}); 

console.log("All text value of firstChild : ", sChildTextSum);

我创建了一个示例代码,如上所述。

https://jsfiddle.net/nigayo/p7t9bdc3/

 类似资料:
  • 我有以下的html代码,我需要console.log只有航运。尝试了一些方法,但似乎无法奏效。我试着先选择它的孩子,然后打印出它的父母的文本内容-不行...我可以删除它的孩子,打印出剩下的东西,但我做不到。 有什么建议吗? 谢谢你的帮助 我试过这个: 我想得到发货,但我仍然得到图例元素的所有文本内容

  • 使用Python 3。 假设: 如果我这样做: elem.text包含"文本其他" 如果我这样做:

  • 问题内容: This is some text 获得“这是一些”并非易事。例如,返回“ This is some text”: 通常,如何获得特定元素的文本而不包含其子元素的文本? (我在下面提供了一个答案,但是如果有人想出一个不太丑陋的解决方案,它将让问题悬而未决)。 问题答案: 这是一个常规解决方案: 传递给函数的元素可以是从方法中获得的东西(即它可以是一个对象)。 或者,如果您没有jQuer

  • 我想在像这样的文本中插入()并将它们放入数组中,但里面可能有一些嵌套的括号。 文本: 应该这样处理: 我怎么能这么做?

  • 问题内容: 如果我运行带有子句的查询,它似乎排除了结束值。 例如: 从‘2011-01-01’到‘2011-01-30’的所有结果;跳过“ 2011-01-31” 所在的记录。谁能解释这个查询的行为方式,以及如何修改它以包含“ 2011-01-31” 所在的记录?(由于用户选择了结束日期,因此未在结束日期前加上1。) 问题答案: 该字段可能具有时间成分。 截断它:

  • 在Javascript中,我希望得到一个字符串,表示两个括号之间的所有文本,即使该字符串包含更多的括号。 其工作如下: "(a)(b)(c)"。匹配(某物); [“a”、“b”、“c”] 或者 “a” “((a)(b)(c))”。匹配(某物); (a)(b)(c)