简体   繁体   English

如何从 JSON hash 创建 HTML 动态 select 选项?

[英]How to create HTML dynamic select option from JSON hash?

I have a simple $test value code:我有一个简单的 $test 值代码:

$test = A,bb,100|A,ff,200|A,ee,100|D,ee,3|D,gg,10|R,ii,7

I have a select tag in my HTML:我的 HTML 中有一个 select 标签:

<select name="datas" id="datas"></select>

I need a simple way to create HTML select box from this JSON, like this:我需要一种简单的方法来从这个 JSON 创建 HTML select 框,如下所示:

<select>
 <option value="">A</option>
 <option value="100">bb</option>
 <option value="200">ff</option>
 <option value="100">ee</option>
</select>
<select>
 <option value="">D</option>
 <option value="3">ee</option>
 <option value="10">gg</option>
</select>
<select>
 <option value="">R</option>
 <option value="7">ii</option>
</select>

You mention JSON, a pre-existing select and the "php" tag although I don't see how any of those things are relevant to your question.你提到了 JSON,一个预先存在的select和“php”标签,尽管我看不出这些与你的问题有什么关系。

Please see the code below to produce a select with its content, per your requirements:请参阅下面的代码,根据您的要求生成一个select及其内容:

 // This isn't JSON. It's just a string let $test = "A,bb,100|A,ff,200|A,ee,100|D,ee,3|D,gg,10|R,ii,7"; // Split the initial string where there are | characters and then loop // over the resulting array of strings $test.split("|").forEach(function(values){ // Create a new `select` element const sel = document.createElement("select"); // Split the part of the string that contains the next level // values and loop over them values.split(",").forEach(function(value){ // Create an `option` element const opt = document.createElement("option"); opt.textContent = value; // Set the value to the individual string sel.appendChild(opt); // Append the option to the select }); document.body.appendChild(sel); // Add the select to the page. });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM