我希望这个函数隐藏html中的按钮,给它们提供css .hidden属性。我已经尝试了[0,1,2,3,4],但它没有按照假设工作,这段代码有效,但我想知道是否有更有效的方法来做到这一点..?
function hideButtons(){
var buttons = document.querySelectorAll('.buttons');
buttons[0].classList.add('hidden');
buttons[1].classList.add('hidden');
buttons[2].classList.add('hidden');
buttons[3].classList.add('hidden');
buttons[4].classList.add('hidden');
}
答案 0 :(得分:3)
使用简单的循环
$('selector').addClass('class_name');
答案 1 :(得分:1)
您不能一次向所有数组元素添加一个类,无论您选择哪种技术,都必须迭代数组;幸运的是,JavaScript有几种方法可以迭代Arrays。
如果您能够使用ES6,则可以访问function hideButtons(){
// document.querySelectorAll() retrieves all elements
// matching the supplied CSS selector, and returns
// a non-live NodeList:
var buttons = document.querySelectorAll('.buttons');
// Array.from() converts the supplied Array-like object
// into an Array, enabling the use of Array methods:
Array.from( buttons )
// here button represents the current element
// of the Array of buttons over which we're iterating,
// the expression following the fat arrow ('=>')
// is executed on each iteration, and adds the 'hidden'
// class-name to each element of the Array:
.forEach(button => button.addClass('hidden');
}
和箭头功能,可以按如下方式使用:
function hideButtons(){
var buttons = document.querySelectorAll('.buttons'),
// here we use Function.prototype.call() to allow
// us to apply the Array.prototype.slice to the
// NodeList, creating an Array from the NodeList:
buttonArray = Array.prototype.slice.call(buttons, 0);
// here we use Array.prototype.forEach(), with its
// anonymous function:
buttonArray.forEach(function(button) {
// 'button' again refers to the current
// element of the array of elements over
// which we're iterating.
// here we add the 'hidden' class-name to
// each element of the array over which
// we're iterating:
button.classList.add('hidden');
});
};
如果没有ES6,您可以使用以下内容重新创建上述行为:
Sub SuperSimpleFrequencyTable()
Dim C As Range, A As Range, B As Range
Set A = Range("A:A")
Set B = Range("B:B")
A.Copy B
B.RemoveDuplicates Columns:=1, Header:=xlNo
Set C = B.SpecialCells(xlCellTypeConstants).Offset(0, 1)
With C
.Formula = "=countif(A:A,B1)"
.Value = .Value
End With
End Sub
参考文献:
答案 2 :(得分:0)
$('.buttons').addClass('hidden');
答案 3 :(得分:0)
试试这个,这是一个更简单的解决方案
can_arr
答案 4 :(得分:0)
您可以使用jQuery进行出价:
$ git push heroku master
答案 5 :(得分:0)
最简单的方法是使用jQuery。 jQuery的类选择器标记文档上的所有元素,并一次对它们执行操作。
您的功能应如下所示:
function hideButtons() {
$('.buttons').addClass('hidden');
}
但是,首选方法是使用jQuery的函数hide()而不是addClass('hidden')。
答案 6 :(得分:0)
如果您能够使用ES6,请尝试一个简单的forEach循环。
let buttons = document.querySelectorAll('.buttons');
buttons.forEach(btn => {
btn.classList.add('hidden');
});
这将遍历每个按钮元素,并为其添加“ .hidden”类。 这不会替代上一课,只需将其添加到您可能拥有的其他课中即可。
如果以后要使用它,可以将代码放在函数中,然后在需要的地方调用该函数。
希望这会有所帮助。