Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:使用动态生成的变量作为选择器,将JSON输入附加为内容_Javascript_Jquery_Ajax_Jquery Selectors - Fatal编程技术网

Javascript jQuery:使用动态生成的变量作为选择器,将JSON输入附加为内容

Javascript jQuery:使用动态生成的变量作为选择器,将JSON输入附加为内容,javascript,jquery,ajax,jquery-selectors,Javascript,Jquery,Ajax,Jquery Selectors,我在一个网站上工作,它基本上是一个按类别划分的项目列表。用户可以将输入名称的类别添加到以下表单中: <form onsubmit="append_div(); add_cat(); return false;"> <input id="new_category"/> <input type="submit" value="Add" id="add_btn_category" /> </form>

我在一个网站上工作,它基本上是一个按类别划分的项目列表。用户可以将输入名称的类别添加到以下表单中:

    <form onsubmit="append_div(); add_cat(); return false;"> 
        <input id="new_category"/>
        <input type="submit" value="Add" id="add_btn_category" />
    </form>
除了
$(new_sp).html(数据[0].category)之外,其他一切都正常工作。这是生成的代码,分为三类:
aa
bb
cc

    `<div id="append">
        <h3 id="new_space0" class="categories"></h3>
        <h3 id="new_space1" class="categories"></h3>
        <h3 id="new_space2" class="categories"></h3>
    </div>`
`
`
但它应该是:

        `<div id="append">
            <h3 id="new_space0" class="categories">aa</h3>
            <h3 id="new_space1" class="categories">bb</h3>
            <h3 id="new_space2" class="categories">cc</h3>
        </div>`
`
aa
bb
复写的副本
`
使用变量
new\u sp
作为
$(new\u sp).html(数据[0].category)中的选择器
似乎不起作用,但在检查了有类似问题的帖子并尝试了许多建议的解决方案后,我无法解决问题。有什么想法吗

var new_sp = "'#new_space" + nodelist + "'"; // to be used in selector
应该是

var new_sp = "#" + node.id; // to be used in selector
变量
new\u sp
应该在函数
append\u div
之外定义,或者应该是
global
以在函数
add\u cat

差不多

   var new_sp = "";
   function append_div(){
            var nodelist = document.getElementsByTagName("h3").length; 
            var node = document.createElement("h3");
            node.id = "new_space" + nodelist;
            new_sp = "#" + node.id; // to be used in selector
            node.className= "categories";
            document.getElementById("append").appendChild(node);
        }

    function add_cat() {
            var url = 'add_category.php?category=' + $('#new_category').val();
            $.getJSON(url, function(data) {
                $(new_sp).html(data[0].category);
            });
        }

谢谢,成功了!我以前已经尝试过用你的方式定义
new\u sp
,但问题在于范围。
   var new_sp = "";
   function append_div(){
            var nodelist = document.getElementsByTagName("h3").length; 
            var node = document.createElement("h3");
            node.id = "new_space" + nodelist;
            new_sp = "#" + node.id; // to be used in selector
            node.className= "categories";
            document.getElementById("append").appendChild(node);
        }

    function add_cat() {
            var url = 'add_category.php?category=' + $('#new_category').val();
            $.getJSON(url, function(data) {
                $(new_sp).html(data[0].category);
            });
        }