18

これはおそらく簡単な質問だと思いますが、プラグインを微調整しようとしています & js は私の専門知識ではなく、次のことを行う方法に困惑しました:

ユーザーが入力した内容に応じて、多数の値 ($fruit) を含むことができる配列があります。手入力によって決定されない別の変数を配列に追加したいと考えています。

ここでプッシュを適用する必要があることはわかっていますが、機能していないようです。次の構文が機能しないのはなぜですか?

var veggies = "carrot";
var fruitvegbasket = $('#fruit').val();
fruitvegbasket.push(veggies);

更新:私はこれをやってうまくいきました:

var fruit = $('#fruit').val();
var veggies = "carrot";
fruitvegbasket = new Array();
fruitvegbasket.push(fruit+","+veggies);

それが最善の方法かどうかはわかりませんが、うまくいきます。皆さんありがとう!

4

4 に答える 4

38

私の頭の上から、私はそれが次のように行われるべきだと思います:

var veggies = "carrot";
var fruitvegbasket = [];
fruitvegbasket.push(veggies);
于 2009-08-17T03:52:22.580 に答える
6

jQuery は配列と同じではありません。jQuery オブジェクトの末尾に何かを追加する場合は、次を使用します。

$('#fruit').append(veggies);

または、例のようにフォーム値の最後に追加するには:

 $('#fruit').val($('#fruit').val()+veggies);

あなたの場合、配列ではなく、fruitvegbasketの現在の値を含む文字列です#fruit

jQuery ( jquery.com ) は DOM 操作を可能にし、呼び出した特定の関数は要素の属性を文字列としてval()返します。文字列に何かをプッシュすることはできません。valueinput

于 2009-08-17T03:53:02.203 に答える
1

.val()は DOM 要素から配列を返しません。$('#fruit')ドキュメント内で #fruit の ID を持つ要素を検索し、その値を取得します (値がある場合)。

于 2009-08-17T03:53:51.267 に答える
0

おそらく$('#fruit').val();配列を返していないため、次のようなものが必要です。

$("#fruit").val() || []

http://docs.jquery.com/Attributes/val

于 2009-08-17T03:57:30.870 に答える