javascript - querySelectorAll 未选择所有元素

标签 javascript

if(document.readyState === 'complete') {
    function $(elements) {
        var matches = document.querySelectorAll(elements);
        for (var i = 0; i < matches.length; i++) {
             var item = matches[i];   
        }
        return item;
    }
}

$('div.test').style.fontSize = '36px';
<div class="test">asdf</div>
<div class="asdfd">test</div>
<div class="test">test</div>

我想使用 querySelectorAll 选择所有元素,但这似乎只影响最后一个元素。

最佳答案

您正在循环内分配变量,该变量只会返回最后一个。您应该通过在循环外部声明变量或返回匹配来构建匹配数组:

function $(elements) {
  return document.querySelectorAll(elements);
}

或者:

function $(elements) {
  var matches = document.querySelectorAll(elements);
  var items = [];
  for (var i = 0; i < matches.length; i++) {
    items.push(matches[i]);   
  }
  return items;
}

关于javascript - querySelectorAll 未选择所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138391/

相关文章:

javascript - 无法在 Jcrop 中拖动选择,什么会破坏它?

javascript - knockout js变量覆盖

javascript - 单击复选框后未收到复选框事件

javascript - 使用 VueJS 保持页面刷新

javascript - 当我们选择表单选择框中的相同选项时如何显示警报

javascript - 当 var 长度小于 1 时更改边框颜色?

javascript - Javascript 中的 if-else 简写返回错误

javascript - 如何随机化旋转圆的速度?

javascript - 在 JavaScript 函数中使用 php 变量时 PhpStorm 中预期的表达式

javascript - 如何在 jsp 文件的 span 标记上从 JavaScript 呈现 html 代码?