Можете ли вы изменить свой код 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"
Вы также можете проверить в нижеприведенной живой скрипке.
$('#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>
Это работало, спасибо – SteveV
приветствовать @SteveV ... ':)'! – vijayP