คุณจะเพิ่มคลาสให้กับ<html>องค์ประกอบรูทโดยใช้ Javascript ได้อย่างไร?
คุณจะเพิ่มคลาสให้กับ<html>องค์ประกอบรูทโดยใช้ Javascript ได้อย่างไร?
คำตอบ:
แบบนี้:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
หรือใช้เป็นบรรทัด 'setter' ของคุณเพื่อรักษาคลาสที่ใช้ก่อนหน้านี้: (ขอบคุณ @ ama2)
root.className += ' myCssClass';
หรือขึ้นอยู่กับการรองรับเบราว์เซอร์ที่ต้องการคุณสามารถใช้classList.add()วิธีการ:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
อัพเดท:
โซลูชันที่หรูหรากว่าสำหรับการอ้างอิงHTMLองค์ประกอบอาจเป็นดังนี้:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add(เคสอูฐ)
classListไม่ทำงานบน document.documetElement
root.classList.add('myCssClass')ทั้งสามอย่าง) คุณใช้ IE หรือไม่
document.documentElement.classList.addดูเหมือนจะทำงานได้ดีที่นี่ เบราว์เซอร์ในปี 2018 ได้เริ่มรองรับสิ่งนี้หรือไม่?
document.documentElement.classList.add('myCssClass');
classListได้รับการสนับสนุนตั้งแต่ ie10: https://caniuse.com/#search=classlist
คุณไม่ควรต่อท้ายชั้นเรียนไม่เขียนทับ
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || "";
document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
ฉันยังคงแนะนำให้ใช้ jQuery เพื่อหลีกเลี่ยงความเข้ากันไม่ได้ของเบราว์เซอร์
ด้วย Jquery ... คุณสามารถเพิ่มคลาสให้กับองค์ประกอบ html ได้ดังนี้:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassoridไม่มีจุดหรือ # ที่จุดเริ่มต้น