javascript - 将文本附加到现有的 span 标记

标签 javascript

我有以下 HTML

<div class="card-text" data-test-info-type="price">
  <div class="price-section price-section--withoutTax ">
      <span data-product-price-without-tax="" class="price price--withoutTax">$20.00</span>
  </div>
</div>

我正在尝试将以下文本附加到 20.00 美元价格含税

因此最终结果为 20.00 美元 价格含税

但是,我在尝试实现这一目标时遇到了困难,我尝试了以下方法:

var span = document.getElementsByClassName("price price--withoutTax");
var txt = document.createTextNode("Prices include taxes");
span.innerText = txt.textContent;

但仍为 20.00 美元

然后我尝试了

document.getElementsByClassName('price price--withoutTax').innerHTML = "hello";

同样的结果仍然是 20.00 美元

有人可以阐明我如何向 span 标记附加附加文本吗?

最佳答案

问题是 document.getElementsByClassName 返回一个 HTML 集合,或者一堆“数组”结构中的元素。这意味着:

var span = document.getElementsByClassName("price price--withoutTax");
span.innerText = ...;

不起作用,因为 span 不是一个元素,而是一个列表。即使您有一个带有类名的元素,它也会返回一个仅包含一个元素的列表。如果您只想要第一个元素,或者只使用第一个元素,请执行以下操作:

var span = document.getElementsByClassName("price price--withoutTax")[0];

注意[0]。这会访问“数组”的第一个元素,就像 document.getElementByClassName 的返回值一样,为您提供具有给定类名的第一个元素。如果您想获取多个元素的值,您可以循环遍历它并对每个元素执行任何操作。

关于javascript - 将文本附加到现有的 span 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403504/

相关文章:

javascript - 如何在用户登录时展开有内容的div,仅使用 $(document).ready 函数没有点击功能

javascript - JQuery 移动对话框错误 SecurityError : The operation is insecure

javascript - 如何将 gridview 中的 datetimepicker 设置为动态?

Javascript正则表达式匹配CSS选择器

javascript - 如何使用 meteor.js 更新嵌套的 json 数组

javascript atob 返回 'String contains an invalid character'

javascript - 排序功能无法正常工作

javascript - 语义用户界面下拉列表中的简单不可点击文本

javascript - 使用 ReactJS 突出显示文本

javascript - jQuery 插件可在文本输入更改时更新 URL 哈希