jquery - 选择框值中的 JSON

标签 jquery html json

我需要将 JSON 存储在 HTML Select 对象中,想知道这是否可行?

例如:

<select id="music" >
  <option value={mbid:123,artist:'Judas Priest'};>Heavy Metal 1</option>
  <option value="{mbid:456,artist:'Black Sabbath'};">Heavy Metal 2</option>
  <option value="{mbid:789,artist:'Iron Maiden'};">Heavy Metal 3</option>
  <option value="{mbid:102,artist:'Accept'};">Heavy Metal 4</option>
</select>

$('#music').on('change', function() {
  var val = this.value;
  alert(val.mbid)
});

JSFiddle 示例:https://jsfiddle.net/rv7x38cw/

最佳答案

请您修改您的 HTML 和 JS 代码如下:

https://jsfiddle.net/rv7x38cw/2/

HTML:

<select id="music">
  <option value='{"mbid":123,"artist":"Judas Priest"}'>Heavy Metal 1</option>
  <option value='{"mbid":456,"artist":"Black Sabbath"}'>Heavy Metal 2</option>
  <option value='{"mbid":789,"artist":"Iron Maiden"}'>Heavy Metal 3</option>
  <option value='{"mbid":102,"artist":"Accept"}'>Heavy Metal 4</option>
</select>

JS:

$('#music').on('change', function() {
  var str = this.value;
  alert(str);
  var val = $.parseJSON(str);
  alert(val);
  alert(val.mbid)
});

这里,关键的变化是;你必须将 value=' your JSON string ' 放在单引号中,每个 JSON 的键名必须用双引号括起来,如 "mbid"

您也可以在下面的现场 fiddle 中结帐。

    $('#music').on('change', function () {
        var str = this.value;
        alert(str);
        var val = $.parseJSON(str);
        alert(val);
        alert(val.mbid)
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select id="music">
    <option value='{"mbid":123,"artist":"Judas Priest"}'>Heavy Metal 1</option>
    <option value='{"mbid":456,"artist":"Black Sabbath"}'>Heavy Metal 2</option>
    <option value='{"mbid":789,"artist":"Iron Maiden"}'>Heavy Metal 3</option>
    <option value='{"mbid":102,"artist":"Accept"}'>Heavy Metal 4</option>
</select>

关于jquery - 选择框值中的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39173017/

相关文章:

javascript - 带导航的简单 jquery 幻灯片?

javascript - leaflet 使用 jquery 和选择器更改圆半径

javascript - 响应式菜单 - 带链接的父菜单

html - 如何在 Bootstrap 中将按钮添加到文本区域?

html - 服务器内部错误 : Premature end of script headers in file. cgi

json - 如何在 postgres 中的 jsonb 单元格内按 limit 1 执行排序?

.net - TypeConverter 适用于 Newtonsoft.Json,但不适用于 JsonConverter? (F#)

javascript - 如何在 jquery 中启用和禁用下拉值

php - 提交后 $_POST 为空

ios - Google Places API - 下一页 token 返回相同的结果