0

現在、次のフォームに存在するすべてのSelect要素を取得しています。

$("form").submit(function(event)
{
    // gather data
    var data = GetSelectData($("form select"));

    // do submit
    $.post($(this).attr("action"), data, ..etc)
});

渡す代わりに、$("form select")私が次のようなことを言うことができる方法はありますか

$(this).children('select') // this doesn't work, btw

送信イベントが実行されているフォームのコンテキスト内に存在するすべての選択要素を取得するには?

これにより、コードを次のように減らし、すべての機能を共通の関数に移動できます。

$("form").submit(function(event)
{
    GatherDataAndSubmit($(this));
});

function GatherDataAndSubmit(obj)
{
    var data = GetSelectData(obj.children('select'));

    $.post(obj.attr("action"), data, ..etc)
}

ありがとう

デイブ

4

2 に答える 2

5

.find()を使用する

試す

var data = GetSelectData(obj.find('select'));

.find()メソッドと.children()メソッドは似ていますが、後者はDOMツリーを1レベル下に移動するだけです。

$("form").submit(function(event)
{
    GatherDataAndSubmit($(this));
});

function GatherDataAndSubmit(obj)
{
    var data = GetSelectData(obj.find('select'));

    $.post(obj.attr("action"), data, ..etc)
}
于 2010-03-05T11:06:42.460 に答える
1
$("form").submit(function(event) {
    // gather data
    var data = GetSelectData($("select", this));

    // ...
});

可能な場合は常に 2 番目の引数を指定します。これは、セレクターが実際に検索するコンテキスト/スコープを指定します。

于 2010-03-05T11:39:13.310 に答える