0

私は次のようなフォームを持っています:

<form id="form1">
   <div id="teste1">
       aaa: <input id="aaa" name="aaa" type="text" />
       bbb: <input id="bbb" name="aaa" type="text" />
       ccc: <input id="ccc" name="aaa" type="text" />
   </div>
   <div id="teste2">
       ddd: <input id="ddd" name="aaa" type="text" />
   </div>
</form>

そのため、jquery では、「form1」要素を変数に入れ、関数パラメーターに渡しました。

$.function({
   var temp = $("#form1");
   foo(temp);
});

そして、関数 foo は他のスクリプト内にあり、たとえば、id 'ddd' を見つける必要があります。どうすればいいですか?

foo = function(dataform)
{
   dataform.$("#ddd").val() ?????
};

どうもありがとう。

4

3 に答える 3

0

まず、$.functionjQuery API の一部ではなく、未定義になります。ready通常は次のように行われるイベントを使用したいと思います。

$(document).ready(function ({
    var temp = $("#form1");
    foo(temp);
});

次に、$.$これも jQuery API の一部ではないため、dataform.$("#ddd")未定義になります。子孫要素 (直接の子要素ではない) を見つけようとしているので、次のfind方法をお勧めします。

foo = function(dataform) {
   dataform.find("#ddd").val() //?????
};

また、余談ですが、上記のコードでは の値を使用して何もしてい#dddないため、ページが正常に実行されたときに認識できるアクションはページに表示されません。

最後に、マークアップが有効で、各id属性が一意であると仮定すると、 を使用して id で要素を検索するのは、単純に検索する.findよりも効率的ではありません(つまり、)。これは明らかに関数パラメーターとして渡す目的を無効にしますが、(DOM のクエリに関して) より効率的であり、何を達成しようとしているのか疑問に思います。全体的な目標で質問を更新していただければ、より適切なサポートを提供できる可能性があります。id$('#ddd').val()$("#form1")

于 2013-06-09T04:48:18.587 に答える
0

しようとしていたelement.find();か、element.children();

サンプル:

foo = function(dataform, inside)
{
   var element_you_want = dataform.children(inside);
};


foo($("#form1"), "#ddd");
于 2013-06-09T04:07:00.837 に答える