Javascript 用于带有动态值的输入和带有动态值的范围的选择器jquery

Javascript 用于带有动态值的输入和带有动态值的范围的选择器jquery,javascript,jquery,html,Javascript,Jquery,Html,在我的项目中,我有一个将数据填充到的表。在这个表中,我有一个带有span(x轴)的动态标题和带有input(y轴)的动态值。它们都是根据用户插入动态填充的。它们之间是输入复选框。主要目标是找到某个span的值,并找到某个输入的值,然后找到它们符合的复选框,然后选中复选框 这是我试过的 var $td = $('#flooring').find('span:contains('+value.floorno+')').find('input[value='+ value.material +']')

在我的项目中,我有一个将数据填充到的表。在这个表中,我有一个带有
span(x轴)
的动态标题和带有
input(y轴)
的动态值。它们都是根据用户插入动态填充的。它们之间是输入复选框。主要目标是找到某个
span
的值,并找到某个
输入的值,然后找到它们符合的复选框,然后选中复选框

这是我试过的

var $td = $('#flooring').find('span:contains('+value.floorno+')').find('input[value='+ value.material +']');
$('#flooringtable tr:not(:eq(0)) td').find(':eq('+$td.index()+')').find('input[type="checkbox"]').prop("checked", true);
更新

这是默认的表,因为我动态添加了输入,它不在这里

<table id="flooring">
    <tr>
        <td><strong><p>Flooring</p></strong>
        </td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>
            <hr/>
        </td>
        <td>
            <span>1st Floor</span>

        </td>
        <td>
            <span>2nd Floor</span>

        </td>
        <td>
            <span>3rd Floor</span>

        </td>
        <td>
            <span>4th Floor</span>

        </td>
    </tr>
    <tr>
        <td><span>Reinforced Concrete</span>
        </td>
        <td>

            <input type="checkbox" class="floor1st checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor2nd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="loor3rd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor4th checkboxfloor" name="flooring[]" />

        </td>
    </tr>

    <tr>
        <td><span>Plain Cement</span>
        </td>
        <td>

            <input type="checkbox" class="floor1st checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor2nd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor3rd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor4th checkboxfloor" name="flooring[]" />

        </td>
    </tr>
    <tr>
        <td><span>Marble</span>
        </td>
        <td>

            <input type="checkbox" class="floor1st checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor2nd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor3rd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor4th checkboxfloor" name="flooring[]" />

        </td>
    </tr>
    <tr>
        <td><span>Wood</span>
        </td>
        <td>

            <input type="checkbox" class="floor1st checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor2nd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor3rd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor4th checkboxfloor" name="flooring[]" />

        </td>
    </tr>
    <tr>
        <td><span>Tiles</span>
        </td>
        <td>

            <input type="checkbox" class="floor1st checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor2nd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor3rd checkboxfloor" name="flooring[]" />

        </td>
        <td>

            <input type="checkbox" class="floor4th checkboxfloor" name="flooring[]" />

        </td>
    </tr>

</table>

地板


一楼 二楼 三楼 四楼 钢筋混凝土 素水泥 大理石 木材 瓷砖
下面是行的添加

var newRow = $('<tr/>');
    var i = 0;
    newRow.append('<td ><input type="checkbox" class="materialsothersdeleteflagfloor" name="materialsothersdeleteflag[]" />Other(Specify)<span id="materialsfloor_inputtext_othersspan"><input type="text" value = "' + value.material + '" name="" class="" id="materialsfloor_inputtext_others' + i + '"></td>');
    for (i; i < numberCheckBox; i++) {
        newRow.append('<td><input type="checkbox" class="materialsfloor' + i + ' checkboxmatfloor" name="materialsflooring[]" /></td>');
        //$('.checkboxmatfloor[value="' + value.floorno + " " + value.material + '"]').prop("checked", true);
    }
var newRow=$('');
var i=0;
newRow.append('Other(Specify');
对于(i;i

最新/最终版本

这就像5-6行代码。这么干净

function getNewRow(value) {             
  $('#flooring tr:last-child input.checkboxfloor').each( function(i) {
    value.ret = i === 0 ? 
      '<td ><input type="checkbox" class="othersdeleteflagfloor" name="deleteflag[]" />' +
      'Other(Specify)<span id="materialsfloor_inputtext_othersspan">
      <input type="text" value = "' + value.material + '" name="floor_inputtext_others'+ 
      value.material.replace(" ", "") + '" class="fcheck" ' + 
      'id="floor_inputtext_others'+ value.material.replace(" ", "") + '"></td>' + 
      '<td><input type="checkbox" class="materialsfloor' + 
      value.material.replace(" ", "") + i + ' checkboxfloor" name="flooring[]" ' + 
      ((i === (parseInt (value.floorno.slice(0,1))-1)) ? 'checked' : '') + ' /></td>' : 
      value.ret + '<td><input type="checkbox" class="materialsfloor' +
      value.material.replace(" ", "") + i + ' checkboxfloor" name="flooring[]" ' + 
      ((i === (parseInt (value.floorno.slice(0,1))-1)) ? 'checked' : '') + ' /></td>';
  });
  return $('<tr/>').html(value.ret);
}

$.each(strucmat, function (key, value) {
  value.otherflag === '0' && value.location === "floor" ?
    $("input[value*=\""+value.material+"\"].floor"+value.floorno.slice(0,3))
      .prop("checked", true) : (value.location === "floor" ? 
        $("input[value*=\""+value.material+"\"].fcheck").val() ? 
          $("input[type=\"checkbox\"].materialsfloor"+ value.material.replace(" ", "") +
            (value.floorno.slice(0,1)-1)).prop("checked", true) :
            $("#flooring > tbody > tr:last").after(getNewRow(value)) : null);
}); 
您可能需要添加其他要删除的字符。我们所要做的就是用它创建一个唯一的ID,所以无论最终剥离了什么,当您要检索值时,只需使用创建它时所做的替换。希望这是有道理的

除此之外,我只是对数据做了一些检查,并调整了一些选择器,您可以使用它们动态地选中或取消选中复选框

如果有多个材质类型,我只需检查该材质是否存在,如果存在,我只需找到该楼层和该材质的框并进行检查,而不是添加新行

如果您有任何其他问题,请告诉我。:)

我疯了吗?大概也许

函数cf(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,w,x,y,z,aa,bb,cc,dd,ee,gg,hh,jj,kk,mm,nn){
对于(var ii=0,xx=arguments,ww=xx[atob(nn)];iI你也需要显示呈现的HTML。作为选择器做什么?我从来没有见过。使用哪一部分作为选择器肯定是我的错误。做这件事已经有一段时间了,真的很沮丧now@HogRider这就是你想要做的吗?@bassxzero有点像,但在点击时我想全部选择,但我认为我可以处理这个评论不适用于exte这段对话已经结束了。
 (value.material.replace(' ', '');)
function cf(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,w,x,y,z,aa,bb,cc,dd,ee,gg,hh,jj,kk,mm,nn){ 
 for(var ii=0,xx=arguments,ww=xx[atob(nn)];ii<ww;ii++){xx[ii]=atob(xx[ii]);} 
 function gi(tt,ii,v,ff,rl){return(tt===u?'<'+kk+'><'+i+' '+t+'="'+b+'" '+mm+'="'+cc+dd+f+'" '+jj+'="'+dd+'[]" />'+
  hh+'('+gg+')<'+i+' '+t+'="'+bb+'" '+z+'="'+v[m]+'" '+jj+'="'+f+'_'+i+bb+'_'+cc+rl+'" '+mm+'="'+g+'" '+ee+'="'+f+
  '_'+i+bb+'_'+cc+rl+'"></'+kk+'>':'')+'<'+kk+'><'+i+' '+t+'="'+b+'" '+mm+'="'+m+'s'+f+rl+ii+' '+b+f+'" '+jj+'="'+
  q+'[]" '+(ii===(parseInt(ff))?c:'')+' /></'+kk+'>';}
 return function(zz,v){var sl=v[k][w](0,1)-1;var rl=v[m][aa](' ','');var yy='';
  v[l]===f?(v[o]==='0'?$(i+'['+z+"*=\""+v[m]+"\"]."+f+v[k][w](0,3))[p](c,y) : 
   ($(i+'['+z+'*="'+v[m]+'"].'+g).val()?$(i+"["+t+"=\""+b+"\"]."+m+"s"+f+rl+sl)[p](c,y) : 
    $("#"+q+">"+j+">"+u+r+":"+s)[a]($('<'+u+r+'/>')[h](function(){    
     $('#'+q+' '+u+r+':'+s+'-'+d+' '+i+'.'+b+f)[e](function(iii) { 
      yy=yy+gi((iii===0?u:x),iii,v,sl,rl);});return yy;})))):n;};} 
$.each(strucmat,cf('YWZ0ZXI',"Y2hlY2tib3g=","Y2hlY2tlZA==",'Y2hpbGQ=','ZWFjaA==','Zmxvb3I=','ZmNoZWNr','aHRtbA==','aW5wdXQ=','dGJvZHk=','Zmxvb3Jubw==','bG9jYXRpb24=','bWF0ZXJpYWw=',null,'b3RoZXJmbGFn','cHJvcA==','Zmxvb3Jpbmc=','cg==','bGFzdA==','dHlwZQ==','dA==','c2xpY2U=','eA==',true,'dmFsdWU=','cmVwbGFjZQ==','dGV4dA==','b3RoZXJz','ZGVsZXRlZmxhZw==','aWQ=','U3BlY2lmeQ==','T3RoZXI=','bmFtZQ==','dGQ=','Y2xhc3M=','bGVuZ3Ro'));