Javascript Select不适用于新添加的行

Javascript Select不适用于新添加的行,javascript,jquery,Javascript,Jquery,这是代码,当您选择opt1时,opt2将相应更改。但在新添加的行中(单击“添加行”按钮时,将添加行)。未在opt2中生成正确的选项 # 名称 邮寄 可移动的 可移动的 1. 周 月 年 添加行删除行 $(文档).ready(函数(){ var i=1; $(文档)。在(“单击”,“添加行”,函数()上){ var datepic=“#date”+i; $('#addr'+i).html(“+(i+1)+” + "" +“周月” +""+"" +""); $(datepic.datepicke

这是代码,当您选择opt1时,opt2将相应更改。但在新添加的行中(单击“添加行”按钮时,将添加行)。未在opt2中生成正确的选项


#
名称
邮寄
可移动的
可移动的
1.
周
月
年
添加行删除行
$(文档).ready(函数(){
var i=1;
$(文档)。在(“单击”,“添加行”,函数()上){
var datepic=“#date”+i;
$('#addr'+i).html(“+(i+1)+”
+ ""
+“周月”
+""+""
+"");
$(datepic.datepicker();
$('#tab_logic')。追加('');
i++;
});
$(文档)。在(“单击”,删除行),函数()上{
如果(i>1){
$(“#addr”+(i-1)).html(“”);
我--;
}
});
$(document).on(“click”,“.category”,function()){
var new_category=$(“.category”).val();
var temp=“{”周“:[”2014-02-24“,”2014-02-17“,”2011-01-03“,”月“:[”2014年2月“,”2011年4月“,”2011年1月“,”年“:”[2014年、2013年、2012年、2011年];
temp=JSON.parse(temp);
$(“.sub_category”).find('option').remove();
$。每个(临时、功能(键、值)
{
如果(键==新的_类){
var sub_cats=value.toString().split(',');

对于(var i=0;i而言,问题在于类别处理程序,它需要侦听更改事件而不是单击事件

您还需要找到同一行中的
子类别
元素

$(document).on("change", ".category", function() {
    var new_category = $(this).val();
    var temp = '{"Week": ["2014-02-24", "2014-02-17", "2011-01-03"], "Month": ["Feb 2014",  "Apr 2011", "Jan 2011"], "Year": [2014, 2013, 2012, 2011]}';
    temp = JSON.parse(temp);
    var $sub = $(this).closest('tr').find(".sub_category");
    $sub.find('option').remove();
    $.each(temp, function(key, value) {
        if (key == new_category) {
            var sub_cats = value.toString().split(',');
            for (var i = 0; i < sub_cats.length; i++) {

                $sub.append('<option value= "' + sub_cats[i] + '">' + sub_cats[i] + '</option>');

            }
        }
    });
});
$(document).on(“change”,“category”,function()){
var new_category=$(this.val();
var temp=“{”周“:[”2014-02-24“,”2014-02-17“,”2011-01-03“,”月“:[”2014年2月“,”2011年4月“,”2011年1月“,”年“:”[2014年、2013年、2012年、2011年];
temp=JSON.parse(temp);
var$sub=$(this.nexist('tr')。find('.sub_category');
$sub.find('option').remove();
$。每个(临时、功能(键、值){
如果(键==新类别){
var sub_cats=value.toString().split(',');
对于(var i=0;i

演示:

只需使用$(this)更改jquery,只对相应tr的子类别进行更改,而不是对所有类别进行更改

$(文档).ready(函数(){
var i=1;
$(文档)。在(“单击”,“添加行”,函数()上){
var datepic=“#date”+i;
$('#addr'+i).html(“+(i+1)+”
+ ""
+“周月”
+""+""
+"");
$(datepic.datepicker();
$('#tab_logic')。追加('');
i++;
});
$(文档)。在(“单击”,删除行),函数()上{
如果(i>1){
$(“#addr”+(i-1)).html(“”);
我--;
}
});
$(document).on(“change”,“.category”,function(){
$this=$(this);
var new_category=$this.val();
var temp=“{”周“:[”2014-02-24“,”2014-02-17“,”2011-01-03“,”月“:[”2014年2月“,”2011年4月“,”2011年1月“,”年“:”[2014年、2013年、2012年、2011年];
temp=JSON.parse(temp);
$this.parents('tr').find('sub_category').find('option').remove();
$。每个(临时、功能(键、值)
{
如果(键==新的_类){
var sub_cats=value.toString().split(',');

对于(var i=0;使用类而不是ID,您可以使用此代码$('body')初始化所有新添加的行,使用此代码日期选择器。在('focus',“.date picker”,function(){$(this.datepicker();});