gpt4 book ai didi

javascript - 如何使用 jQuery 按名称检索值数组?

转载 作者:行者123 更新时间:2023-11-28 20:48:56 25 4
gpt4 key购买 nike

我有一个 HTML,如下所示。请告诉我如何在 jQuery 中检索值“task”数组。

<div class="column1">
<input class="task_name" type="text" placeholder="Enter task name.." value="" name="task[0][name]">
</div>
<div class="column2">
<select class="task_ppl_required" name="task[0][number]">
<option selected="selected">1</option>
<option>2</option>
</select>
<input class="task_id" type="hidden" value="0" name="task[0][guid]">
</div>
<div class="column1">
<input class="task_name" type="text" placeholder="Enter task name.." value="" name="task[2][name]">
</div>
<div class="column2">
<select class="volunteer_task_ppl_required" name="task[2][number]" value="1">
<option selected="selected">1</option>
<option>2</option>
</select>
<input class="task_id" type="hidden" value="0" name="task[2][guid]">
</div>

最佳答案

function getValues(form) {
var vals = {};
form.find("[name]").each(function() {
var names = this.name.split(/[[\]]+/);
if (names[names.length-1] == "") names.pop();
var obj = vals;
for (var i=0; i<names.length-1; i++) {
if (! (names[i] in obj))
obj[names[i]] = {};
obj = obj[names[i]];
}
obj[names[i]] = this.value;
});
return vals;
}

您也可以使用 .serializeArray() 而不是 .find("[name]") ,这可能更准确并允许更多输入。现在,您可以

> getValues($myForm).task[0]
{number: "1", guid: "0"}

( Demo at jsfiddle.netmore sophisticated 使用 Array.reduce)

关于javascript - 如何使用 jQuery 按名称检索值数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12882513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com