เรารู้ว่า JS ดั้งเดิมให้วิธี GetElementsByClassName ซึ่งเราสามารถรับคอลเลกชันของโหนดที่มีคลาสที่ระบุผ่านวิธีนี้ โปรดทราบว่ามันเป็นคอลเลกชันนั่นคือฟังก์ชั่นนี้ส่งคืนอาร์เรย์
อย่างไรก็ตาม IE ไม่สนับสนุนวิธีนี้ แต่วิธีนี้ใช้งานได้จริงมากดังนั้นเราจึงต้องใช้ฟังก์ชั่นดังกล่าวโดยเฉพาะสำหรับ IE
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น getElementsByClassName (oele, sclass, sele) {
if (oele.getElementsByClassName) {
return oele.getElementsByClassName (sclass);
}อื่น{
var aele = oele.getElementsByTagname (sele || '*')
reg = new regexp ('(^| // s)'+sclass+'($ | // s)')
arr = []
i = 0,
ilen = aele.length;
สำหรับ (; i <ilen; i ++) {
if (reg.test (aele [i] .classname)) {
arr.push (aele [i]);
-
-
กลับ arr;
-
-
วิธีใช้:
การคัดลอกรหัสมีดังนี้:
// ประเภทแรก: เลือกคลาสทั้งหมดภายใต้เอกสารเป็นองค์ประกอบ div ของ box_box
getElementsByClassName (เอกสาร, 'Box_Box', 'div') [0] .style.background = 'Yellow';
// ประเภทที่สอง: เลือกคลาสทั้งหมดภายใต้เอกสารเป็นองค์ประกอบ div ของ Box-Box
GetElementsByClassName (เอกสาร, 'Box-Box', 'Div') [0] .style.background = 'Yellow';
// ประเภทที่สาม: เลือกคลาสทั้งหมดภายใต้เอกสารเป็นองค์ประกอบกล่องกล่อง
getElementsByClassName (เอกสาร, 'Box-Box') [0] .style.background = 'Yellow';
จำเป็นต้องใช้ Oele และ SCLASS Sele เป็นตัวเลือก
ไม่มีปัญหากับเส้นแนวนอนหรือขีดล่างใน SCLASS เช่นกล่องกล่องกล่อง box_box; แต่ถ้ามันเป็นตัวละครพิเศษอื่น ๆ ก็เป็นไปได้มากที่จะมีปัญหาเช่นกล่อง $ box ... แน่นอนคุณสามารถเพิ่มหลบหนีเพื่อรับตัวละครพิเศษด้วยตัวคุณเองเช่นกล่อง // $ box ...
ความเข้ากันได้: ทดสอบ IE6+
เพื่อนคุณจะรู้หลังจากใช้มันเอง ใช้งานง่ายสุด ๆ มาแพร่กระจายไปยังเพื่อนคนอื่น ๆ