重写jquery函数以接受不同的参数?

时间:2018-01-22 17:21:32

标签: jquery

我创建了一个函数,用一个“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();

1 个答案:

答案 0 :(得分:0)

只需将函数上方的代码移动到函数内部,为括号之间的参数提供名称。并使用这些名称而不是代码中的硬编码值。最后,当您调用该函数时,传递每个参数的值。

我将使用classNamedataAttr,但您应该将它们更改为更有意义的代码名称:

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");