0

foo と bar の 2 つの要素を作成していますが、これらを同時にリンクする必要があります。

<div class="target-1"></div>
<div class="target-2"></div>
<form>
    <input type="text" />
    <button type="submit">Submit</button>
</form>

これらは、作成された要素のターゲットです。ここにjsがあります:

var index = 0;
$("form").submit(function(){
  $(".target-1").append(
    $("<span/>", {class: "foo", id: "s-" + index++}));
  $(".target-2").append(
    $("<span/>", {class: "bar s-" + index}));
});

これは、ターゲット-1 内に ID "sn" を持つ span.foo を作成すると同時に、ターゲット-2 内にクラス "sn" を持つ別の span.bar を作成することを意味します。 span.foo.

実際に行うことは、span.foo id="s-0" と span.bar class="s-1" を作成することです。最初の追加でインデックスを増やしてから、2番目の追加でインデックスの現在の状態を設定しているため、理由がわかりません。

ここにフィドルhttp://jsfiddle.net/Yrrfd/がありますが、jsfiddleではフォームを送信できないため、ボタンを使用するだけでフォームは使用しません。しかし、それは同じように機能するはずであり、関係なく異なるインデックス値を見ることができます.

4

5 に答える 5

1

++index代わりに使用する必要がある割り当ての後にインデックスをインクリメントしていますindex++

$(".target-1").append(
    $("<span/>", {class: "foo", id: "s-" + ++index})); // Here
  $(".target-2").append(
    $("<span/>", {class: "bar s-" + index}))
});

フィドル

後置インクリメント演算子は、最初に割り当ててからインクリメントします。プレインクリメント演算子が必要です。

于 2013-06-17T04:07:07.650 に答える