我有一些javascript,我在一个选项附加一个选项:
var myuniqueddl = $('#myuniqueddl');
$("<option value='0'>--- Select a value ---</option>").appendTo(myuniqueddl);
我实际上也试图为另一个选择做这个。
我想避免代码重复我应该将ddl传递给方法来执行此操作吗?
function(someType ddl)
{
$("<option value='0'>--- Select a value ---</option>").appendTo(ddl);
}
将select传递给方法是一个坏主意吗?
有更好的方法吗?
如果这种方式可以,我将它传递给哪种类型?
答案 0 :(得分:5)
首先,是的,将select
元素传递给函数以减少代码重复是完全有效的。在这种情况下,您似乎担心必须两次输入相同的函数调用(appendTo
),这实际上不是重复。
其次,您不能为JavaScript函数参数指定任何类型。 JavaScript中的变量为dynamically typed。您只需指定变量名称:
function myFunction(ddl) {
$("<option value='0'>--- Select a value ---</option>").appendTo(ddl);
}
答案 1 :(得分:3)
如果这种方式可以,我将它传递给哪种类型?
应该是jQuery元素类似于:
var myuniqueddl = $('#myuniqueddl');
示例:强>
function addOption(el)
{
$("<option value='0'>--- Select a value ---</option>").appendTo(el);
}
var myuniqueddl = $('#myuniqueddl');
var myuniqueddl2 = $('#myuniqueddl2');
addOption(myuniqueddl);
addOption(myuniqueddl2);
或直接:
addOption($('#myuniqueddl'));
addOption($('#myuniqueddl2'));
答案 2 :(得分:3)
Javascript函数不使用类型提示,因此您的函数签名:
function(someType ddl)
..无效。
此外,我建议让你的函数更灵活一点,并通过将字符串传递给jQuery(not efficient, see this benchmark)来消除DOM元素的创建:
var addOption = function(sel, text, value) {
if (typeof value == 'undefined')
value = text;
sel.options[sel.options.length] = new Option(text, value);
}
// usage: addOption($('#myuniqueddl'), '--- Select a value ---');
// or: addOption($('#myuniqueddl'), '--- Select a value ---', 0);
<强>文档强>
答案 3 :(得分:1)
这没有任何问题,但是让我给你一个有效的例子,因为你的代码有一些语法错误。
function(ddl)
{
$("<option value='0'>--- Select a value ---</option>").appendTo(ddl);
}
如果这种方式可以,我将它传递给哪种类型?
Javascript不像c#或java那样使用类型。只需传递一个变量,类似于上面的代码。