用vanilla javascript编写这行jQuery
有人能帮我用javascript写这行jQuery吗。它对一个类应用一个样式规则用vanilla javascript编写这行jQuery,javascript,jquery,Javascript,Jquery,有人能帮我用javascript写这行jQuery吗。它对一个类应用一个样式规则 $('.dataCard').css('visiblity','visible!important')为!重要信息在使用javascript设置样式时不适用,可能是这样 var elems = document.querySelectorAll('.dataCard'); for (var i=elems.length; i--;) { elems[i].style.visibility = 'v
$('.dataCard').css('visiblity','visible!important')代码>为!重要信息
在使用javascript设置样式时不适用,可能是这样
var elems = document.querySelectorAll('.dataCard');
for (var i=elems.length; i--;) {
elems[i].style.visibility = 'visible';
}
如果您想创建一个通用函数来替换jQuery中的函数,可以这样做:
function setStyle(elemOrSelector, prop, val) {
var items;
if (typeof elemOrSelector === "string") {
// run selector query
items = document.querySelectorAll(elemOrSelector);
} else if (elemOrSelector.nodeName) {
// must be single DOM object
items = [elemOrSelector];
} else if (elemOrSelector.length)
// must be an array or nodeList
items = elemOrSelector;
} else {
// don't know what it is
return;
}
for (var i = 0; i < items.length; i++) {
items[i].style[prop] = val;
}
}
setStyle('.dataCard', "visibility", "visible");
功能设置样式(elemOrSelector、prop、val){
风险值项目;
if(elemOrSelector的类型==“字符串”){
//运行选择器查询
items=document.queryselectoral(elemOrSelector);
}else if(elemOrSelector.nodeName){
//必须是单个DOM对象
项目=[elemOrSelector];
}else if(elemOrSelector.length)
//必须是数组或节点列表
项目=电子选择器;
}否则{
//不知道是什么
返回;
}
对于(变量i=0;i
此通用函数允许您传递DOM元素、类似数组的DOM元素列表或选择器字符串
如果您不想要通用性,那么您可以使用以下方法:
function setStyle(selector, prop, val) {
var items = document.querySelectorAll(selector);
for (var i = 0; i < items.length; i++) {
items[i].style[prop] = val;
}
}
setStyle('.dataCard', "visibility", "visible");
功能设置样式(选择器、道具、val){
var items=document.querySelectorAll(选择器);
对于(变量i=0;i
for
循环的运行方式有点不同。为什么要走非传统路线(这会让不熟悉这种风格的人更难阅读)?@jfriend00如果他们不熟悉,他们可以查找它的意思,然后突然,它就很熟悉了。@jfriend00-我总是以这种方式迭代节点列表,以确保不会遇到问题。当然,querySelectorAll不会返回活动节点列表,因此这不是问题,但如果切换到getElementsByClassName,则会返回,因此我认为保持一致性是一种很好的做法。@RUJordan-熟悉这种迭代方式的人要少得多。它使用布尔测试的副作用来减少循环变量。是的,它是有效的,但不像其他方法那样可读。很好。对于可读性更强的代码,我会做出不同的选择。我确实理解在实时节点列表中反向迭代的优势,但出于几个原因,这里不需要反向迭代。也许我更看重代码对其他人的可读性,而不是某些人。可能与多年来管理一个开发团队有关。@jfriend00这可能与主题无关,但当人们的技能水平相差如此之大时,如何定义可读性呢?选择器不是defined@gomangomango更多代码行!=复杂。它实际上是一个非常简单的函数。@gomangomango-它更通用,可以用于多种输入格式的许多操作,就像它所取代的jQuery函数一样。我更喜欢可以重用的通用代码,而不是大量的代码片段,每一段代码都需要复制和更改才能做一些稍微不同的事情。啊,我明白了。可以我会研究它并从中学习。我对学习jquery背后的js很感兴趣。如果你要走这条路,模仿jquery,为什么不这样做->