通过 Ajax 添加后如何获取数据列表内容?

问题描述

我有一个带有 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 获取数据列表选项)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...