に値の配列を渡す:私はそうのようなボタンを持っているのjQuery
<button id='abc' value=['fred', 26]></button>
私はjQueryの.val()関数を介して、これら2つの値をアクセスする方法を知りたいです。
私は$("#abc").val()[0]
を試しましたが、それは私に最初の文字「[」を与えるように見えます。
私は.val()[0]
の代わりに私に値 "フレッド"を与えたいと思います。
に値の配列を渡す:私はそうのようなボタンを持っているのjQuery
<button id='abc' value=['fred', 26]></button>
私はjQueryの.val()関数を介して、これら2つの値をアクセスする方法を知りたいです。
私は$("#abc").val()[0]
を試しましたが、それは私に最初の文字「[」を与えるように見えます。
私は.val()[0]
の代わりに私に値 "フレッド"を与えたいと思います。
お客様のHTMLは無効です。試してみてください;
<button id='abc' value="['fred', 26]"></button>
ただし、配列としてデータを解析することができますし、valid JSON notationを使用して見なければなりません。 JSONでは、文字列にはダブルクォートが必要です(単一の'
ではなく)。
<button id='abc' value='["fred", 26]'></button>
あなたは今、直接$('#abc').val()
にアクセスした場合、あなたは["fred", 26]
文字列を取得すると思います。このデータを配列として取得するには、jQuery.parseJSON()
を使用してデータを解析する必要があります。
var array = jQuery.parseJSON($('#abs').val());
for (var i=0;i<array.length;i++) {
alert(array[i]);
};
#マット:十分に公正。 :-)私たちはすべて私たちのものを持っています。 –
Matt's suggestion良いです(と、彼はあなたのHTMLが無効であることを右です)。
もう1つのアプローチは、要素にIDがあるため、マークアップではなくJavaScriptに別々に値を格納することです。
<script>
var elementValues = {};
elementValues.abc = ['fred', 26];
</script>
を...そしてあなたはそれを使用したい場合は、あなたがあなたがあなたのコード内のIDを(知っていれば、あなたはそれを使用している:IDは定義により、ページ上で一意であるので、あなたが持っている可能性がありそれがであるようthis
と仮定すると(問題の要素であり、
var values = elementValues.abc;
...またはあなたが必ずしもコードでIDを知らないイベントハンドラで:$("#abc")
経由要素)を見つけるためにjQueryのイベントハンドラ):
var values = elementValues[this.id];
あなたはそれが値
の配列を返しますevalを
<button id="abc" value='["fred",26]'></button>
var values = eval($("#abc").val());
values[0]
values[1]
を使用することができます "「のinstedを使用して、正しいJSON形式を修正:
<button id="abc" value='["fred",26]'></button>
は、文字列を解析:
$.parseJSON($('#abc').val())[0];
を
または
var abc = $.parseJSON($('#abc').val());
abc[0];
「['fred'、26]」と表示されるボタンが本当に必要ですか?おそらく、あなたは 'data-values = '[" "fred"、26]' '(無効なHTMLを修正したことに注意してください)を使いたいかもしれません。 –