Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery CSS到纯Javascript_Javascript_Jquery - Fatal编程技术网

jQuery CSS到纯Javascript

jQuery CSS到纯Javascript,javascript,jquery,Javascript,Jquery,我尽量少用jQuery,我想把一些jQuery代码翻译成纯JS 我有这个: $(".myDiv").css({"width": 500}); 上面代码的纯JS等价物是什么 document.querySelectorAll('.myDiv').forEach(function(elem) { elem.style.width = "500px"; }) querySelectorAll获取元素,然后迭代元素并为每个元素设置样式 var els = document.querySele

我尽量少用jQuery,我想把一些jQuery代码翻译成纯JS

我有这个:

$(".myDiv").css({"width": 500});
上面代码的纯JS等价物是什么

document.querySelectorAll('.myDiv').forEach(function(elem) {
    elem.style.width = "500px";
})
querySelectorAll
获取元素,然后迭代元素并为每个元素设置样式

var els = document.querySelectorAll('.myDiv');

// If you want to get elements using its class name
// var els = document.getElementsByClassName('myDiv');

for(var i = 0, length = els.length; i < length; i++) {
   els[i].style.width = '500px';
}
querySelectorAll
获取元素,然后迭代元素并为每个元素设置样式

var els = document.querySelectorAll('.myDiv');

// If you want to get elements using its class name
// var els = document.getElementsByClassName('myDiv');

for(var i = 0, length = els.length; i < length; i++) {
   els[i].style.width = '500px';
}


有几种方法可以达到同样的效果,但你可以这样做:

document.querySelectorAll('.myDiv').forEach(function(el) {
  el.style.width = '500px';
});

querySelectorAll选择所有特定CSS选择器作为DOM元素的集合。forEach遍历集合,将当前选定的元素传递给内部函数,然后使用style.width对其进行样式设置。

有几种方法可以实现相同的效果,但您可以使用以下方法:

document.querySelectorAll('.myDiv').forEach(function(el) {
  el.style.width = '500px';
});

querySelectorAll选择所有特定CSS选择器作为DOM元素的集合。forEach遍历集合,将当前选定的元素传递给内部函数,然后使用style.width对其进行样式设置。

您只需使用
document.getElementsByClassName()
获取该类的所有元素,然后对其进行迭代,并使用
style.width
更改其宽度:

Array.from(document.getElementsByClassName("myDiv")).forEach(function(div) {
  div.style.width = "500px";
});
演示:

Array.from(document.getElementsByClassName(“myDiv”)).forEach(函数(div){
div.style.width=“100px”;
});
.myDiv{
背景颜色:黄色;
}

A
您只需使用
document.getElementsByClassName()
获取此类中的所有元素,然后对它们进行迭代,并使用
style.width
更改它们的宽度:

Array.from(document.getElementsByClassName("myDiv")).forEach(function(div) {
  div.style.width = "500px";
});
演示:

Array.from(document.getElementsByClassName(“myDiv”)).forEach(函数(div){
div.style.width=“100px”;
});
.myDiv{
背景颜色:黄色;
}
A
使用cssText

css(document.getElementById(“红色”),“颜色:红色;字体大小:24px”) 函数css(el、cssText){ el.style.cssText=cssText; }
某物
使用cssText

css(document.getElementById(“红色”),“颜色:红色;字体大小:24px”) 函数css(el、cssText){ el.style.cssText=cssText; }

something
for的
循环应该是
for(var i=0,length=els.length;i
。它比一直访问
length
属性要快。@IsmaelMiguel我可以知道有什么区别吗?@IsmaelMiguel这样的微优化很少有用-在这种情况下,for循环的主体很可能导致页面回流,它会使for循环本身花费的时间相形见绌。在出现可测量的问题之前,通常最好坚持使用最具可读性的内容。注意使用类似于数组的对象,它缺乏浏览器兼容性,尤其是与IE的兼容性。您的
for
循环应该是
for(var i=0,length=els.length;i
。它比一直访问
length
属性要快。@IsmaelMiguel我可以知道有什么区别吗?@IsmaelMiguel这样的微优化很少有用-在这种情况下,for循环的主体很可能导致页面回流,它会使for循环本身花费的时间相形见绌。在遇到可测量的问题之前,通常最好坚持使用可读性最好的对象。注意使用类似于数组的对象,它缺乏浏览器兼容性,尤其是与IE的兼容性。注意使用类似于数组的对象,它缺乏浏览器兼容性,尤其是与IE的兼容性。如果OP担心旧浏览器,首先,他可能不应该尝试“尽可能少地使用jQuery”。只需全力支持jQuery即可,以支持较旧的浏览器@pedromartinezAlso,对于任何想要的人来说,大多数(所有)新数组方法都有多填充,比如一些、forEach、Every、filter等等。提到这一点非常重要,他不想使用jQuery,所以很可能他在这里瞄准的是一个旧浏览器,所以当我们提供纯JS解决方案时,它需要与所有浏览器兼容。对于未来的读者也是如此。如果有polyfill,这里值得一提。“他不想使用jQuery,所以很可能他在这里瞄准的是一个旧浏览器”->反过来应该是正确的。您越需要支持旧浏览器,就越应该依赖jQuery。请注意使用类似数组的对象,它缺乏浏览器兼容性,特别是与IE的兼容性。如果OP担心旧浏览器,他可能不应该首先尝试“尽可能少地使用jQuery”。只需全力支持jQuery即可,以支持较旧的浏览器@pedromartinezAlso,对于任何想要的人来说,大多数(所有)新数组方法都有多填充,比如一些、forEach、Every、filter等等。提到这一点非常重要,他不想使用jQuery,所以很可能他在这里瞄准的是一个旧浏览器,所以当我们提供纯JS解决方案时,它需要与所有浏览器兼容。对于未来的读者也是如此。如果有polyfill,这里值得一提。“他不想使用jQuery,所以很可能他在这里瞄准的是一个旧浏览器”->反过来应该是正确的。您越需要支持旧浏览器,就越应该依赖jQuery。