我创建了一个函数,用一个“awesome”类查找所有li,将其data-superhero属性放入一个数组,并将其放入一个新的ul。我如何重写我的代码,以便我有一个接受参数的函数?这就是我最初想出的:
var myList = $("ul li.awesome").map(function() {
return $(this).data("superhero")
}).toArray();
var list = $('<ul/>').appendTo('#newList');
function getHeros() {
for (var i = 0; i < myList.length; i++) {
list.append('<li>' + myList[i] + '</li>');
}
}
getHeros();
答案 0 :(得分:0)
只需将函数上方的代码移动到函数内部,为括号之间的参数提供名称。并使用这些名称而不是代码中的硬编码值。最后,当您调用该函数时,传递每个参数的值。
我将使用className
和dataAttr
,但您应该将它们更改为更有意义的代码名称:
function getHeros(className, dataAttr) {
var myList = $("ul li." + className).map(function() {
return $(this).data(dataAttr);
}).toArray();
var list = $('<ul/>').appendTo('#newList');
for (var i = 0; i < myList.length; i++) {
list.append('<li>' + myList[i] + '</li>');
}
}
getHeros("awesome", "superhero");