1

ページに 10 個の入力ボックスがあります。

<input type="text" id="box1">
<input type="text" id="box2">
<input type="text" id="box3">
<input type="text" id="box4">
<input type="text" id="box5">
<input type="text" id="box6">
<input type="text" id="box7">
<input type="text" id="box8">
<input type="text" id="box9">
<input type="text" id="box10">

JavaScript を使用して、それぞれの入力を選択できるようにしたいのですが、JavaScript を使用して要求があった場合のみです。

次のコードを使用しました。

document.getElementById("box1").value

値を返します(これが必要です)

しかし、私はそれで何かをして、次のアイテムをリクエストして、それで何かをしたいと思っています..

そのため、ダミーの変数を作成しました (関数が呼び出されるたびに値を 1 にリセットしたくないため、関数の外に配置します)。

var current_item = "1";

次に、この変数を使用してアイテムを選択できるようにしたかったので、次のように使用しました。

document.getElementById("box" + current_item).value
current_item = current_item + 1;

しかし、それは機能していません。current_item 変数に警告すると、undefined が返されます。

関数に current_item 変数を追加すると、関数は機能し、やりたいことを実行しますが、1 にリセットし続けます (関数が変数を再作成しているため)。

次の入力ボックスの値を取得する方法について、誰か助けてもらえますか?

4

4 に答える 4

2

current_itemを文字列ではなく数値にしてみてください。

var current_item = 1;

それ以外の

var current_item = "1";

jsFiddleの例

于 2012-10-19T02:19:00.017 に答える
2

current_itemは文字列であり、+演算子を使用すると、加算ではなく連結を実行します。

"1" + 1
"11"

を使用するvar current_item = 1;と、整数になり、次のようにして追加できます。+1

また、

var current_item = "1";
current_item = current_item*1 + 1;
2

1を掛けると、intにキャストされ、次に1が加算されます。これにより、期待どおりに2になります。

関連する質問:Javascript(+)記号は、変数の合計を与える代わりに連結します

于 2012-10-19T02:19:32.177 に答える
1

私の推測では、あなたはさまざまなタイプをいじっています。current_item文字列として開始しますが、数値を追加すると、の結果はでcurrent_item + 111なくなり2ます。試してみてください:

var current_item = 1
于 2012-10-19T02:19:46.120 に答える
0

他の回答で説明されているように、文字列と数字を混ぜているようです。

さて、あなたの質問は次の入力をつかむことについてです。IDに依存する代わりに、node.nextSiblingを使用するだけで済みます。

https://developer.mozilla.org/en-US/docs/DOM/Node.nextSibling

var firstItem=document.getElementById("box1");
var nextItem=firstItem.nextSibling;
etc.
于 2012-10-19T04:11:47.477 に答える