我有json数组,其中包含类似
的值[0=>'<script>alert();</script>',1=>'test',...etc]
此数组是从Mysql DB内容生成的。
我想显示相同的文本(<script type="text/javascript">alert();</script>
),而不必通过每个功能的选择选项执行JS。
请帮助我,请忽略我的错,因为这是我的第一个问题。
答案 0 :(得分:1)
$.each(JSON.parse(response_json), function (index, value) {
var short_txt = $("<div></div>").text(value.value_name).html();
var long_txt = $("<div></div>").text(value.long_text).html();
$html += '<li onclick="selectSuggestion_template(\'' + escape(value.value_name) + '\',' + val_id + ',\'' + escape(value.long_text) + '\');">' + short_txt + ' - ' + long_txt + '</li>';
});
答案 1 :(得分:0)
我已经找到了像这样的解决方案:
var jsonData = {
"data":[{"id":"67","name":"\"kakkkke\"","long_name":"\"kakkkke\""},
{"id":"71","name":"<script type=\"text\/javascript\">alert();<\/script>",
"long_name":"<script type=\"text\/javascript\">alert();<\/script>"},
{"id":"1","name":"00ABRA","long_name":"ABRASIVES"}]
};
var options = '<option value="">---</option>';
var dataArrayValue = [];
$.each( jsonData.data, function(i, data) {
options += '<option value="' + data.id + '">' + '</option>';
dataArrayValue[data.id] = data.name + ' - ' + data.long_name;
});
$('#adddata').html(options);
$('#adddata option').each(function (key, v) {
var attrval = parseInt($(this).attr('value'));
$(this).text(dataArrayValue[attrval]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="adddata" id="adddata">
</select>