0

以下はHTMLです

<div id="serverList" class="content">
    <div class="boxtitle">
    </div>
    <div id='serverInfo1' class="formEl_b">
        <fieldset>
            <legend>Server #1</legend>
            <div class="section">
                <label>
                    Server Description<small>Linux</small></label>
                <div>
                    <input type="text" id="serverDescription" class="serverDescription medium" /><span class="f_help"></span></div>
            </div>
            <div class="section">
                <label>
                    Server HostName<small>SRV_FR_TERT</small></label>
                <div>
                    <input type="text" id="serverHostName" class="serverHostName medium" /><span class="f_help"></span></div>
            </div>
        </fieldset>
    </div>
    <div id='serverInfo2' class="formEl_b">
        <fieldset>
            <legend>Server #2</legend>
            <div class="section">
                <label>
                    Server Description<small>Windows 2003</small></label>
                <div>
                    <input type="text" id="serverDescription" class="serverDescription medium" /><span class="f_help"></span></div>
            </div>
            <div class="section">
                <label>
                    Server HostName<small>SRV_EQ_SFGT</small></label>
                <div>
                    <input type="text" id="serverHostName" class="serverHostName medium" /><span class="f_help"></span></div>
            </div>
        </fieldset>
    </div>
    <div id='serverInfo3' class="formEl_b">
        <fieldset>
            <legend>Server #3</legend>
            <div class="section">
                <label>
                    Server Description<small>iOS</small></label>
                <div>
                    <input type="text" id="serverDescription" class="serverDescription medium" /><span class="f_help"></span></div>
            </div>
            <div class="section">
                <label>
                    Server HostName<small>SRV_WR_RQRT</small></label>
                <div>
                    <input type="text" id="serverHostName" class="serverHostName medium" /><span class="f_help"></span></div>
            </div>
        </fieldset>
    </div>
</div>

JQueryを使用して上記のhtmlを繰り返し、すべてのサーバーに対して印刷しようdescriptionとしていますhostname

$("#serverList").children(".formEl_b").each(function () {

      // this is what i am trying to get with no success:
      var description = $(".formEl_b .serverDescription").val();
      var hostname = $(".formEl_b .serverHostName").val();

      alert(description);
      alert(hostname);

});

私が抱えている問題は、常に最初descriptionに印刷され、hostnameその種類のアイテムが 3 つあることです。

4

2 に答える 2

3

あなたのセレクター

$(".formEl_b .serverDescription")

.serverDescriptionの子孫としてDOMのどこかに現れるクラスを持つすべての要素を見つけて.formEl_bいますが、すでに親要素をループしているので、次のようなものを使用できます:

$("#serverList").children(".formEl_b").each(function () {
      var description = $(this).find(".serverDescription").val();
      var hostname = $(this).find(".serverHostName").val();
      alert(description);
      alert(hostname);
});

セレクターを置き換えて、ループfind()内の現在の要素の子孫を検索するだけですeach

find()コンテキストでセレクターを使用するよりもわずかに高速$(".serverDescription", this)です(つまり)

于 2012-11-19T12:22:18.550 に答える
1

の中で、反復中の要素電流を参照するため.each()に使用します。this

そう:

$("#serverList").children(".formEl_b").each(function () {

      var description = $(".serverDescription", this).val();
      var hostname = $(".serverHostName", this).val();

      alert(description);
      alert(hostname);

});

または同等:

      var description = $(this).find(".serverDescription").val();
于 2012-11-19T12:22:36.473 に答える