web-dev-qa-db-ja.com

Varの値を配列にプッシュする

これはおそらく簡単な質問であることはわかっていますが、プラグインで微調整を試みていますが、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);

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

17
Peter

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

var veggies = "carrot";
var fruitvegbasket = [];
fruitvegbasket.Push(veggies);
36
jeef3

jQueryは配列とは異なります。 jQueryオブジェクトの最後に何かを追加する場合は、次を使用します。

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

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

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

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

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

6
Tyler Carter

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

1
Rex M

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

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

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

0
Kevin