例如更新屬性。這可以像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