Javascript 如果我想在没有jQuery的情况下操作HTML/CSS,我应该采用什么方法?
我正在尝试在没有jQuery这样的大型库的帮助下进行一些html/css操作 我使用它来知道dom何时准备就绪,并从中调用我的函数:Javascript 如果我想在没有jQuery的情况下操作HTML/CSS,我应该采用什么方法?,javascript,Javascript,我正在尝试在没有jQuery这样的大型库的帮助下进行一些html/css操作 我使用它来知道dom何时准备就绪,并从中调用我的函数: domready(function () { functionOne(); }) 如何对DOM进行更改,例如,将类删除/添加到元素中,并让它知道,以便我可以执行以下操作(在最后一行): var linkElement=document.getElementById(“myElement”); linkElement.className.replace(“活
domready(function () {
functionOne();
})
如何对DOM进行更改,例如,将类删除/添加到元素中,并让它知道,以便我可以执行以下操作(在最后一行):
var linkElement=document.getElementById(“myElement”);
linkElement.className.replace(“活动”、“非活动”);
elementByClass=document.getElementsByClassName(“非活动”)[0];
尝试使用此代码为DOM元素指定类名
document.getElementById("myElement").className = "myClassName";
答案取决于您希望支持的浏览器。最新的浏览器已经在本地实现了许多jQuery特性(querySelector、classlist等) 您的代码是一个很好的开始,但它不起作用,因为replace不会在适当的位置更改字符串,而是返回一个新的字符串
<div id="myElement" class="active"></div>
var linkElement = document.getElementById("myElement");
linkElement.className = linkElement.className.replace(" active", " unactive");
elementByClass = document.getElementsByClassName("unactive")[0];
var linkElement=document.getElementById(“myElement”);
linkElement.className=linkElement.className.replace(“活动”、“非活动”);
elementByClass=document.getElementsByClassName(“非活动”)[0];
查看类列表,检查使用类的更健壮的实现:
您需要重新分配它的DOM属性 例如,您可以将DOM元素的classname属性指定为
document.getElementById("myElement").className = "myClassName";
您可以使用设置所有其他Dom元素属性。如果您的浏览器支持和,请执行以下操作:
elements = document.getElementsByClassName('existingClass');
elements.forEach(function(elem){
elem.classList.remove("existingClass");
elem.classList.add("newClass");
elem.classList.add("foo","bar");
});
希望有帮助。您需要将字符串重新分配给
.className
。如果您的目标是现代浏览器:linkElement.classList.remove(“actice”);linkElement.classList.add(“非活动”)代码>:-)以下是您需要了解的关于DOM的全部内容:好吧,您可以使用纯javascript(或者您认为合适的任何其他脚本语言,假设您可以控制客户端呈现……这是我能想到的避免使用jQuery的唯一原因)。问题是,你最终会编写更多的代码,而且它的优化程度可能会低于jQ目前的优化程度。@mikehomechko:如果做得正确,它将比jQuery更优化。jQuery还使糟糕的代码模式变得非常容易。
elements = document.getElementsByClassName('existingClass');
elements.forEach(function(elem){
elem.classList.remove("existingClass");
elem.classList.add("newClass");
elem.classList.add("foo","bar");
});