3

フォームの名前のみを提供し、それらの必要なフィールドが入力要素であることを知っているだけで、jQueryから特定のフォームからすべての入力要素を取得しようとしています。

まあ言ってみれば:

<form action='#' id='formId'>
<input id='name' />
<input id='surname'/>
</form>

jQueryを使用してそれらに個別にアクセスするにはどうすればよいですか?私は成功しなかったようなことを試み$('#formId > input')ました、実際にはエラーがコンソールに戻ってきました"XML filter is applied to non-XML value (function (a, b) {return new (c.fn.init)(a, b);})"

たぶん私は.childrenかそのようなものでそれをしなければなりませんか?私はjQueryにかなり慣れていないので、ドキュメントはあまり好きではありません。それはMootoolsではるかに友好的でした、あるいは多分私はそれに慣れる必要があります。

最後になりましたが、前に尋ねられましたが、最終的な答えはありません。jQueryを使用して新しいdom要素を作成し、それをコードに挿入する前に操作できますか?mootoolsには、次のようなものがvar myEl = new Element(element[, properties]); あり、それをさらに式で参照できますが、jQueryでそれを行う方法がわかりません。

私がやったことは次のようなものでした:$('#where').before("<a id='linkId' href='#'>Link Text</a>")しかし、これは、私が何を意味するかを知っている場合、挿入する前にそれを操作するという要件を打ち破ります。

前もって感謝します。

4

4 に答える 4

5

すべての子孫が必要な場合は、@wolandの答えが機能します。>で示されているように、本当に直接の子のみが必要な場合は、

$('#form').children('input')

Wolandsは、名前、名前、電話番号に一致します。鉱山は名前と名前だけに一致します

<form action='#' id='formId'>
<input id='name' />
<input id='surname'/>
<div>
<input id='phone'/>
</div>
</form>
于 2010-03-12T10:39:04.333 に答える
3

これがあなたの質問に答えることを願っています。

<script type="text/javascript">

$(document).ready(function() {
        // Question part 1
    var formInputs = $("form#formId :input");
    formInputs.each(function(index) {
         alert(index + ': ' + $(this).attr("id") + "=" + $(this).val());
    });

        // Question part 2
    var a = $("<a id='linkId' href='#'>Link Text</a>");
    a.click(function(){alert("hello")});
    $('#where').before(a);


});
</script>

<form action="#" id="formId">
  <input id="name" type="text" value="foo" />
  <input id="surname" type="text" value="bar" />
  <div>
  <input id="phone" type="text" value="911"/>
  </div>
</form>
</div>
<div id="where"></div>
于 2010-03-12T11:00:36.943 に答える
1

仕組みは次のとおりです。

$('#formId input')
于 2010-03-12T10:34:06.120 に答える
1

すべての入力をループする場合は、jQueryのeach()関数を見てください。

于 2010-03-12T10:36:09.330 に答える