0

選択にオプションを追加する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をメソッドに渡すのは悪い考えですか?

これを行うためのより良い方法はありますか?

この方法で問題がない場合、どのタイプとして渡しますか?

4

4 に答える 4

5

まず、はい、selectコードの重複を減らすために要素を関数に渡すことは完全に有効です。この場合、同じ関数呼び出し()を2回入力する必要があるのではないかと心配しているようですがappendTo、これは実際には重複ではありません。

次に、 JavaScript関数パラメーターにタイプを指定することはできません。JavaScriptの変数は動的に型付けされます。変数名を指定するだけです。

function myFunction(ddl) {
  $("<option value='0'>--- Select a value ---</option>").appendTo(ddl);
}
于 2012-06-27T20:42:36.523 に答える
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'));
于 2012-06-27T20:42:50.173 に答える
3

Javascript関数は型ヒントを使用しないため、関数のシグネチャは次のようになります。

function(someType ddl)

.. 有効ではない。

さらに、関数をもう少し柔軟にし、文字列をjQueryに渡すことで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);

ドキュメンテーション

于 2012-06-27T20:47:14.710 に答える
1

これには何の問題もありませんが、コードに構文エラーがあるため、有効な例を示します。

function(ddl)
{
   $("<option value='0'>--- Select a value ---</option>").appendTo(ddl);
}

この方法で問題がない場合、どのタイプとして渡しますか?

Javascriptは、c#やjavaと同じように型を使用しません。上記のコードと同様に、変数を渡すだけです。

于 2012-06-27T20:43:29.283 に答える