我像一個按鈕,以便:傳遞數值數組jQuery的
<button id='abc' value=['fred', 26]></button>
我想知道我如何通過JQuery的.VAL()函數訪問這兩個值。
我試過$("#abc").val()[0]
但這似乎給了我的第一個字符是括號「[」。
我想.val()[0]
改爲給我價值「弗雷德」。
我像一個按鈕,以便:傳遞數值數組jQuery的
<button id='abc' value=['fred', 26]></button>
我想知道我如何通過JQuery的.VAL()函數訪問這兩個值。
我試過$("#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]);
};
#馬特:夠公平的。 :-)我們都有我們的東西。 – 2012-01-05 11:58:28
Matt's suggestion是好的(他是對的,你的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]
它將返回數組
修復正確的JSON格式insted的的「:
<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)。 – 2012-01-05 11:49:24