0

私は次のマークアップを持っています

<span id="add">

  <li style="float: left;margin-right: 10px;">
     <b class="bg">Nom</b><br />
     <input type="text" class="_input _input_text nom"/>
  </li>

  <li>
    <b class="bg">montant investi</b><br />
    <input type="text" class="_input _input_text montant"/>
    <a class="_button"
       onclick="$('#add').append(
          '<span>\
            <li style=\'float: left;margin-right: 10px;\'>\
              <b class=\'bg\'>Nom</b><br />\
              <input type=\'text\' class=\'_input _input_text nom\'/>\
            </li>\
            <li>\
              <b class=\'bg\'>montant investi</b><br />\
              <input type=\'text\' class=\'_input _input_text montant\'/>\
              <a class=\'_button\' style=\'float:right;margin-top:0;margin-left:5px\' \
                onclick=\'$(this).parent().parent().remove();\'>\
                <b>X</b>\
              </a>\
            </li>\
          </span>');"
       style="float: right;margin-top: 0px;margin-left: 5px;">
        Ajouter un associé
    </a>
  </li>

</span>

onclick関数は、<li>入力テキストを含む2つのマークアップを作成します。入力には、.nom、.montantの2つのクラスがあります。

この関数を使用してそれらを収集しようとすると、次のようになります。

var _nom=[];

_nom.push($("#add input.nom[type=text]").val());

$.each(_nom, function(key, value) {
  alert(key + ': ' + value);
});

動的に作成されない2つの入力の値のみを取得します。

4

1 に答える 1

1

代わりにこれを使用する必要があります。

$("#add input.nom[type=text]")
.each(function(key, value) {
  alert(key + ': ' + $(value).val());
});

http://jsfiddle.net/4UhqL/

$("#add input.nom[type=text]")1つの要素ではなく、要素の配列が返されるため、間違った結果が得られます 。

于 2013-01-03T17:12:46.480 に答える