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);
});
}