例如更新属性。这可以像jQuery一样完成,而不使用for循环?我可以在所有元素直接
0
A
回答
1
使用纯JavaScript可以使用如下的querySelectorAll()
功能:
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
for(var i=0; i<checkboxes.length; i++) { checkboxes[i].checked = true; }
不幸的是这并不能避免的循环,我知道你想避免和它也没有完美的跨浏览器的兼容性能被检查here与IE 8只能够挂钩到CSS 2.1选择器和Pre IE8根本不被支持,但它是最好的,可以做到,而无需使用大量的代码和避免jQuery。
我知道你想避免jQuery的,但如果你改变了主意,你可以尝试以下方法:
$('input[type="checkbox"]').attr('checked', 'checked')
这应该钩在任何复选框,输入并设置其属性为选中使用jQuery attr()
功能。
如果这不起作用尝试给您复选框自己的类名,如复选框,并尝试像如下:
$('.checkbox').attr('checked', 'checked')
这将帮助兼容性问题,并能避免循环,但如果你不这样做想要去jQuery路线,然后请忽略。
3
不,没有某种形式的节点迭代就无法完成。 jQuery也遍历节点,它只是隐藏了用户。
的一些新的jQuery般的风格最接近的是使用浏览器.forEach
[MDN]它支持:
[].forEach.call(inputs, function() {
this.checked = true;
});
3
不使用for循环
在某些时候,你需要某种形式的循环。你只是希望把它抽象出来吗?
NodeList
s为Array
样,所以你可以从Array.prototype
call
或apply
方法,包括iterators像forEach()
。一个例子from MDN:
另一种方法无需扩展DOM:
var forEach = Array.prototype.forEach; var links = document.getElementsByTagName('a'); forEach.call(links, function(link){ // works in most browsers (please document here if you find browsers where it doesn't) link.style.color = '#0F0'; });
但要注意,即使forEach()
depends on a loop(while
在这种情况下)。
4
querySelectorAll
返回NodeList
。你将需要迭代列表来改变它中的每个项目(jQuery在后台使用循环遍历整个集合。每个)
您可以使用一个循环(对于,同时,等),或者你可以使用forEach
方法上Array
原型
https://developer.mozilla.org/en-US/docs/DOM/NodeList#Workarounds
相关问题
- 1. 使用jQuery获取元素的所有直接子元素
- 2. 我可以通过id直接访问DOM元素吗?
- 3. 我可以提醒我所有的元素吗?
- 4. 我可以访问没有直接
- 5. JSON。有多少元素可以接受?
- 6. 我可以把所有namspace定义顶级元素与JAXB
- 7. 有什么方法可以直接在.NET中更新字典的Key元素?
- 8. 我如何可以直接在laravel 5.4
- 9. 是否可以直接将元素转换为Array?
- 10. 我可以从HTML元素获得现有的JS元素
- 11. 我可以使用SimpleXML和Xpath直接选择元素属性吗?
- 12. 我可以在检查元素
- 13. Jaxb可以元素没有根元素的元素吗?
- 14. 我可以直接编辑UITableView单元格的textLabel吗?
- 15. 我可以有多个:在相同元素的伪元素之前?
- 16. 让所有元素连接与LINQ
- 17. 在Xcode中可以直接将代码添加到界面元素中吗?
- 18. iText的 - 在所有元素
- 19. 是否有可能显示我可以在android studio中的根元素(在xml中)使用的所有标签?
- 20. XUL:将所有元素垂直放置在prefpane中
- 21. 元素的所有可能组合
- 22. 我如何可以切换两种元素没有在JavaScript
- 23. 我可以在Android中有重叠元素吗?
- 24. 我可以在imagemap区域元素上有onclick事件吗
- 25. 从所有元素
- 26. 如果我们知道元素,直接在java中创建linkedList
- 27. 乘以R中所有元素的元素
- 28. 返回超出以往所有元素的元素列表
- 29. 将元素拉伸以包含所有子元素
- 30. Selenium可以评估所有XPath元素吗?
的问题问的纯JavaScript不jQuery的... – lifetimes 2013-03-26 01:10:13
我不想使用jQuery,因为这将是我在页面中唯一的javascript ... – Alex 2013-03-26 01:11:09
道歉!我错误阅读了这个问题,我读了这可以在jQuery中完成,而不是在jQuery中“喜欢”...道歉。希望这可以对别人有用,而我很快回来了实际的答案! – 2013-03-26 01:11:41