我希望能够获得存储在隐藏输入中的对象数组。
谢谢
这是 html 页面中的隐藏输入:
<input type="hidden" name="idMusicians" value="[{"id":7069,"project_id":324,"name":"Gator","first_name":"Ali","instrument_id":28,"created_at":"2019-08-02 15:48:07","updated_at":"2019-08-02 15:48:07",",{"id":7070,"project_id":324,"name":"Zhette","first_name":"Annie","instrument_id":29,"created_at":"2019-08-02 15:48:07","updated_at":"2019-08-02 15:48:07",}]">
我尝试过这个,但它不起作用:
var musicians = $("#idMusicians").map(function(){
var musician = this;
return musician;
}).get();
这也没有成功:
var musicians = $("#idMusicians").data('value');
最佳答案
如果你给它一个id然后使用,你可以获取输入中的值:
$("#idMusicians").val();
将值放入变量后,您可以将其解析为 JSON,然后您可以迭代数组以访问其对象。但是,为了使 JSON.parse()
正常工作,value
中的值必须是有效的 JSON。目前,您的值不是有效的 JSON,因为它无法正确关闭您的第一个对象。如果解决了这个问题,您就可以使用 JSON.parse()
而不会出现错误。
参见下面的示例:
const musicians = $("#idMusicians").val();
const res = JSON.parse(musicians);
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="hidden" id="idMusicians" name="idMusicians" value="[{"id":7069,"project_id":324,"name":"Gator","first_name":"Ali","instrument_id":28,"created_at":"2019-08-02 15:48:07","updated_at":"2019-08-02 15:48:07"},{"id":7070,"project_id":324,"name":"Zhette","first_name":"Annie","instrument_id":29,"created_at":"2019-08-02 15:48:07","updated_at":"2019-08-02 15:48:07"}]">
关于javascript - 获取存储在隐藏输入中的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57337301/