如何一次为多个元素调用已创建的函数?
How do I call a created function for multiple elements at once?
我创建了一个简短的函数来说明我的观点。
假设我已经创建了一个myFunction()
函数,它提供以下服务:
function myFunction(element,property,color){
$(element).css(property,color);
};
对于我想要应用这个函数的每个元素,我将使用:
myFunction('div','background-color','green');
myFunction('span','border-color','blue');
myFunction('i','color','red');
演示:http://jsfiddle.net/h4yY3/
但是我希望我可以只调用一次所有这些处理程序的函数。例如,我可以这样做:
function myFunction({element,property,color}){
...
}
myFunction({'div','background-color','green'},{'span','border-color','blue'},{'i','color','red'});
有人能教我正确的方法吗?我尝试了搜索,但不知道我是否使用了正确的术语将其称为"处理程序"。
,请建议。谢谢你。
您可以这样做(给定您的描述):
// @args { elm: ELM, prop: PROPERTY, val: VALUE },...
function applyCSS() {
var args = [].slice.call(arguments),
len = args.length;
while (len--) {
var cfg = args[len];
$(cfg.elm).css(cfg.prop, cfg.val);
}
}
applyCSS(
{ elm: '.block', prop: 'background-color', val: '#ccc'},
{ elm: '.para', prop: 'color', val: 'blue' },
{ elm: '.thing', prop: 'font-size', val: '14pt' }
);
请看这个JSBin的例子。
Update:受@ActiveHigh版本的启发,我认为这可能是一个更好的函数参数组织,允许在一次调用中修改多个元素的多个属性(与上面的JSBin示例相同):
// Alternative version to allow multiple properties per element to be set.
// @args { 'elm': { prop: val, ... }, ... }
function applyCSS2(obj) {
var elms = Object.keys(obj),
len = elms.length;
$.map(elms, function(elm) {
$(elm).css(obj[elm]);
});
}
调用它看起来像这样:
applyCSS2({
'.block': { 'background-color': '#ccc', 'color': '#fff' },
'.para': { 'color': 'blue', 'font-family': 'Verdana, sans-serif' },
'.thing': { 'font-size': '14pt', 'letter-spacing': '1em' }
})
让我知道这是否有帮助。为了提高效率,我稍微修改了一下数组
var dummy = [["div", {'color':'red', 'background': 'red'}],
["span", {'color':'red', 'background': 'red'}],
["li", {'color':'red', 'background': 'red'}]]
var cssFunction = function (items) {
$.map(items, function(item){
$(item[0]).css(item[1]);
});
};
cssFunction(dummy);
尽管您可以直接使用jquery应用css:
$(selector).css({color:"red",background:"black"})
这里有一个你想要的例子
http://jsbin.com/molifece/2/edit相关文章:
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- Javascript创建函数,以便在其他函数之间共享变量
- 调用函数和创建函数实例之间的Javascript差异
- setTimeout是否创建函数实例
- 使用 eval 从字符串创建函数的不同方法
- 如何在jquery中创建函数和parent.function
- 在for循环中创建函数
- 如何使用php代码创建函数Javascript弹出框
- 如何避免在循环中创建函数
- 在Javascript的函数原型中创建函数
- 在JS中动态创建函数
- 为什么在Javascript中创建函数有两种不同的方法
- 在循环中创建函数的最有效替代方法
- Javascript循环创建函数并使用收到的基于PHP Query的id附加值
- 如何在 Javascript 命名空间脚本中创建函数数组
- 在 JavaScript 中创建函数的原型
- 在 javascript 中创建函数的不同方式
- 如何创建函数式方法
- Javascript:在 for 循环中创建函数
- 在 JavaScript 中创建函数以启用/禁用基于选择的输入