javascript - 循环 getElementsByClassName() 后获取 innerHTML

标签 javascript

我的示例代码:

<!DOCTYPE html>
<html>
<body>

<div class="names">
   <i>Name 1.</i>
</div>

<div class="names">
   <i>Name 2.</i>
</div>

<div class="names">
   <i>Name 3.</i>
</div>

<input type="button" value="Change all names" onclick="changeNames()" />
<script>
var changeNames = function() {
   var names = document.getElementsByClassName('names');

   for (var i = 0; i < names.length; i++) {
      names.item(i).textContent = names.item(i).textContent + ' Changed...'
   }
}
</script>
</body>
</html>

我的问题是:如何获得 <i>类名里面的标签?

names.item(i).textContent不包括 <i>标签。

我试过了,但没有用:names.item(i).find('i').textContent

names.item(i)不支持 .innerHTML ,也是。

最佳答案

使用 Element.querySelector() 在 div 中获取 i 标签。

var changeNames = function() {
  var names = document.getElementsByClassName('names');

  for (var i = 0; i < names.length; i++) {
    names.item(i).querySelector('i').textContent += ' Changed...'
      // or
      // names[i].querySelector('i').textContent += ' Changed...'
  }
}
<div class="names">
  <i>Name 1.</i>
</div>

<div class="names">
  <i>Name 2.</i>
</div>

<div class="names">
  <i>Name 3.</i>
</div>

<input type="button" value="Change all names" onclick="changeNames()" />

关于javascript - 循环 getElementsByClassName() 后获取 innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429647/

相关文章:

javascript - 结合 EaselJS 和 TweenJS 实现随时间淡入淡出

javascript - 无法在 webstorm 中使用 let

javascript - jQuery 的 div 调整大小问题

javascript - 在 ASP.Net Web 应用程序上使用移动设备上的摄像头上传文件

javascript - 双击禁用单选按钮正在启动 IE11 中的单击事件

javascript - 数组异步问题

javascript - 使用 javascript 和 jquery ui 单击事件的 css

javascript - jQuery - 删除克隆的元素

javascript - 如何将查询 graphql 转换为 json 对象?

javascript - 如何在 Angular 2 中添加条件属性?