[英]Passing An Array of Values To Jquery
我有一個這樣的按鈕:
<button id='abc' value=['fred', 26]></button>
我想知道如何通過JQuery的.val()函數訪問這兩個值。
我試過$("#abc").val()[0]
但這似乎只給了我第一個字符,它是括號“[”。
我想.val()[0]
代替給我值“Fred”。
您的HTML無效。 你應該試試;
<button id='abc' value="['fred', 26]"></button>
但是,您應該查看使用有效的JSON表示法 ,以便將數據解析為數組。 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]);
};
馬特的建議很好(他說你的HTML無效)。
另一種方法,因為元素具有ID,是在JavaScript中而不是在標記中單獨存儲值。 由於ID根據定義在頁面上是唯一的,因此您可以:
<script>
var elementValues = {};
elementValues.abc = ['fred', 26];
</script>
...然后你想要使用它,如果你知道ID(在你的代碼中,你用它來通過$("#abc")
找到元素):
var values = elementValues.abc;
...或者在事件處理程序中,您不一定知道代碼中的ID,假設this
是有問題的元素(就像在jQuery中的事件處理程序中一樣):
var values = elementValues[this.id];
你可以使用eval
<button id="abc" value='["fred",26]'></button>
var values = eval($("#abc").val());
values[0]
values[1]
它將返回值數組
使用“insted of”修復正確的JSON格式:
<button id="abc" value='["fred",26]'></button>
解析字符串:
$.parseJSON( $('#abc').val() )[0];
要么
var abc = $.parseJSON( $('#abc').val() );
abc[0];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.