Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
基于Json数据通过JavaScript函数添加类_Javascript_Jquery_Css - Fatal编程技术网

基于Json数据通过JavaScript函数添加类

基于Json数据通过JavaScript函数添加类,javascript,jquery,css,Javascript,Jquery,Css,我试图根据通过ajax调用接收到的json数据向复选框标签添加css类。我可以读取数据并执行必要的任务,但当列表的值已经可用时,将css类应用于复选框标签除外。我错过了什么 当ajax成功时,我调用studatapopulate(1,app)以下是我的js function studatapopulate(id, data) { var ref = data[id].ref; var exam = data[id].exam; var tutes = ""; j

我试图根据通过ajax调用接收到的json数据向复选框标签添加css类。我可以读取数据并执行必要的任务,但当列表的值已经可用时,将css类应用于复选框标签除外。我错过了什么

当ajax成功时,我调用studatapopulate(1,app)以下是我的
js

function studatapopulate(id, data) {
    var ref = data[id].ref;
    var exam = data[id].exam;

    var tutes = "";
    jQuery.each(data[id].tutedata, function (index, value) {
        tutes += '<li>'+value.subj+'</li>';
        tutes += '<ul>';
        var i;
        for (i = 1; i < 21; ++i) {
            tutes += '<li><label class="tutebtn" for="'+id+'_'+value.id+'_'+i+'"><input type="checkbox" id="'+id+'_'+value.id+'_'+i+'" data-subj="'+value.id+'" value="'+i+'"';

            jQuery.each(value.issuedtutes, function (indexa, valuae) {
                if (valuae == i) {
                    jQuery(this).closest('label').addClass('tutegot');
                    tutes += ' checked="checked" disabled="disabled"';
                }
            });

            tutes += '/> '+i+'</label></li>';
        }
        tutes += '</ul>';
    });
    jQuery("#tutes_"+id).append('<ul>'+tutes+'</ul>');

}
函数studatapopulate(id、数据){
var ref=数据[id].ref;
var检查=数据[id]。检查;
var tutes=“”;
jQuery.each(数据[id].tutedata,函数(索引,值){
tutes+='
  • '+value.subc+'
  • '; tutes+='
      '; var i; 对于(i=1;i<21;++i){ tutes+='
    • '+i+'
    • '; } tutes+='
    '; }); jQuery(“#tutes"+id).append(“
      ”+tutes+”
    ); }
    我尝试了
    parent
    parents
    ,但没有成功

    已发行债券的样本数据=>[“5”、“9”、“16”]


    checked=“checked”disabled=“disabled”
    在上述情况下工作正常,使项目5、9和16处于选中和禁用状态。

    解决方案:

    在第一个位置附加图元之前,不要选择最近的标签

    在将html元素附加到tute[id]之后,只需添加tutegot类即可

    这可能不是最佳解决方案。但这是可行的

    
    你好
    
    函数studatapopulate(id、数据){ var ref=数据[id].ref; var检查=数据[id]。检查; var tutes=“”; jQuery.each(数据[id].tutedata,函数(索引,值){ tutes+='
  • '+value.subc+'
  • '; tutes+='
      '; var i; 对于(i=1;i<21;++i){ tutes+='
    • '+i+'
    • '; } tutes+='
    '; }); jQuery(“#tutes"+id).append(“
      ”+tutes+”
    ); $(“输入:复选框:选中”).parent().addClass(“tutegot”) } 变量a={ 1: { 参考号:123, 考试:123, 图塔塔:[ { id:1001, 主题:“a”, 发行日期:[ "5", "9", "16" ], }, { id:1002, 主题:“b”, 发行日期:[ "5", "9", "16" ], } ] } }; studatapopulate(1,a);
    解决方案:

    在第一个位置附加图元之前,不要选择最近的标签

    在将html元素附加到tute[id]之后,只需添加tutegot类即可

    这可能不是最佳解决方案。但这是可行的

    
    你好
    
    函数studatapopulate(id、数据){ var ref=数据[id].ref; var检查=数据[id]。检查; var tutes=“”; jQuery.each(数据[id].tutedata,函数(索引,值){ tutes+='
  • '+value.subc+'
  • '; tutes+='
      '; var i; 对于(i=1;i<21;++i){ tutes+='
    • '+i+'
    • '; } tutes+='
    '; }); jQuery(“#tutes"+id).append(“
      ”+tutes+”
    ); $(“输入:复选框:选中”).parent().addClass(“tutegot”) } 变量a={ 1: { 参考号:123, 考试:123, 图塔塔:[ { id:1001, 主题:“a”, 发行日期:[ "5", "9", "16" ], }, { id:1002, 主题:“b”, 发行日期:[ "5", "9", "16" ], } ] } }; studatapopulate(1,a);
    它是不会添加
    tutegot
    类吗?如果是,请尝试添加
    console.log(jQuery(this))`并查看是否得到一个对象。
    jQuery(this)
    @CarstenLøvboAndersen是正确的。@SourabhSomani我试图引用当前的输入元素,因此,引用父标签。@SourabhSomani
    您的代码中的此
    不会引用来自
    tutes
    输入
    ,它不会添加
    tutegot
    类吗?如果是,请尝试添加
    console.log(jQuery(this))`并查看是否得到一个对象。
    jQuery(this)
    @CarstenLøvboAndersen是正确的。@SourabhSomani我试图引用当前的输入元素,因此,引用父标签。@SourabhSomani
    您的代码中的此
    不会引用来自
    tutes
    输入
    ,当您可以使用
    $(“输入:复选框:选中”)时,为什么要使用这么多代码来添加类
    tutegot
    。.parent().addClass(“tutegot”)
    look here@CarstenLøvboAndersen感谢您的优化:)。它减少了大量的代码行。当您可以使用
    $(“输入:复选框:选中”).parent().addClass(“tutegot”)
    查看这里@CarstenLøvboAndersen感谢优化:)时,为什么要使用这么多代码来添加类
    tutegot
    。它减少了大量代码。