问题描述
我有一个带有 datalist 选项的输入字段,它在更改其他字段后通过 AJAX 更新了它的建议。
我尝试向数据列表添加新选项,因为提出了其他问题:
$("#add_option").change(function(){
var _opt_opt_name_val = $(this).val();
var opt_name_url=_url+"?opt_name="+escape(_opt_opt_name_val);
var _values_datalist_id = $("#opt_values").attr("list")
var _value_html = "";
$.get(opt_name_url,function(data){
$(_values_datalist_id).empty();
$.each(data,function(key,v){
_value_html += '<option value="' + v.value + '"></option>';
});
$(_values_datalist_id).append(_value_html);
console.log("added code: "+$(_values_datalist_id).html());
});
});
由于它不起作用,我想检查(阅读)通过此 javascript 附加的内容。试过 $("#element").text() 和 .html()。两者都返回undefined。
在这种(或任何)情况下,我如何检索数据列表内容?对于调试,我的意思是。
解决方法
再一次,在摆弄这个问题 3 天后,我有了做这件事的洞察力:
我将 Ajax 部分的 JQuery 和 Vanilla Javascript 混合用于添加新选项。不是很优雅,但到目前为止有效:
$("#add_option").change(function(){
var _opt_opt_name_val = $(this).val();
var opt_name_url=_url+"?opt_name="+escape(_opt_opt_name_val);
var _values_datalist_id = $("#opt_values").attr("list")
$.get(opt_name_url,function(data){
var _datalist=document.getElementById(_values_datalist_id);
_datalist.innerHTML = "";
$.each(data,function(key,v){
_datalist.innerHTML += '<option value="' + v.value + '"></option>';
});
});
});
这解决了我今天的问题。也许这可以帮助任何有类似问题的人? (虽然我仍然不知道如何通过 jQuery 获取数据列表选项)。