我希望以上内容以这种方式显示:
csecsub[0][0]={'NYU', 'Additional Mathematics', '3'}
csecsub[0][1]={'NYU', 'Agricultural Science DA', '1'}
csecsub[1][0]={'MIT', Agricultural Science DA', '1'}
csecsub[1][1]={'MIT', Agricultural Science SA', '1'}
我尝试使用_.map,但是我一直在获取_.map不是函数。即使我包含lodash.min.js。我真的很想弄清楚如何完成上述工作。提前致谢。所以我想用代码作为上面的示例来付清它们。此外,它们还将显示在页面上的html表中。
$(document).ready(function() {
$("body").on("click",".add-morecsec",function(){
var html = $(".after-add-morecsec").first().clone();
// $(html).find(".change").prepend("<label for=''> </label><br/><a class='btn btn-danger remove'>- Remove</a>");
$(html).find(".changecsec").html("<a class='button alert removecsec step fi-minus size-36'> Remove</a>");
$(".after-add-morecsec").last().after(html);
});
$("body").on("click",".removecsec",function(){
$(this).parents(".after-add-morecsec").remove();
});
});
$(document).ready(function() {
$("body").on("click",".add-morecsec1",function(){
var html = $(".after-add-morecsec1").first().clone();
// $(html).find(".change").prepend("<label for=''> </label><br/><a class='btn btn-danger remove'>- Remove</a>");
$(html).find(".changecsec1").html("<a class='button alert removecsec1 step fi-minus size-36'> Remove</a>");
$(".after-add-morecsec1").last().after(html);
});
$("body").on("click",".removecsec1",function(){
$(this).parents(".after-add-morecsec1").remove();
});
});
var acadachieve = $.map($('input[name*="acadachieve"]:checked'), function(e) { return e.value; });
acadachieve = acadachieve .filter(Boolean);
var csecsub = $.map($("select[name*=csecsub] option:selected"), function(e) {
return e.value;
});
csecsub = csecsub.filter(Boolean);
for (var i = 0; i < csecsub.length; i++) {
if (acadachieve[i] === "csec") {
console.log(csecsub[i]); //this is where i cannot get it to show the results i want
}
}
<input type="text" id="School" name='school[0]' placeholder="School/College Name " />
<input id="csec" name="acadachieve[0]" type="checkbox" value="csec" style="margin-left:20px; height: auto;" /> CSEC
<input id="cape" name="acadachieve[0]" type="checkbox" value="cape" style="height: auto;" /> CAPE
<input id="tertiary" name="acadachieve[0]" type="checkbox" value="cape" style="height: auto;" /> Tertiary
<div class="after-add-morecsec">
<select id="csecsub" name="csecsub[0][]">
<option value="">-Select Subject-</option>
<option value="Additional Mathematics">Additional Mathematics</option>
<option value="Agricultural Science DA">Agricultural Science DA</option>
<option value="Agricultural Science SA">Agricultural Science SA</option>
</select>
<select id="csecgrade" name="csecgrade[0][]">
<option value="">-Select Grade-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<div class="changecsec">
</div>
</div>
<a class="success button add-morecsec fi-plus size-36" name="add-morecsec">Add More Subjects</a><br><br>
<input type="text" id="School" name='school[0]' placeholder="School/College Name " />
<input id="csec" name="acadachieve[0]" type="checkbox" value="csec" style="margin-left:20px; height: auto;" /> CSEC
<input id="cape" name="acadachieve[0]" type="checkbox" value="cape" style="height: auto;" /> CAPE
<input id="tertiary" name="acadachieve[0]" type="checkbox" value="cape" style="height: auto;" /> Tertiary
<div class="after-add-morecsec1">
<select id="csecsub" name="csecsub[1][]">
<option value="">-Select Subject-</option>
<option value="Additional Mathematics">Additional Mathematics</option>
<option value="Agricultural Science DA" selected>Agricultural Science DA</option>
<option value="Agricultural Science SA">Agricultural Science SA</option>
</select>
<select id="csecgrade" name="csecgrade[1][]">
<option value="">-Select Grade-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<div class="changecsec1">
</div>
</div>
<a class="success button add-morecsec1 fi-plus size-36" name="add-morecsec1">Add More Subjects</a>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
答案 0 :(得分:0)
我认为这基本上是您要寻找的。在示例结果中没有显示与复选框相关的任何内容,因此该部分非常不清楚
var $csecsub = $("select[name*=csecsub]"),
$csecgrade = $("select[name*=csecgrade]"),
results = $.map($csecsub,function(el, i) {
return [[el.value, $csecgrade.eq(i).val()]]
})
console.log(results)
<input id="csec" name="acadachieve[0]" type="checkbox" value="csec" style="margin-left:20px; height: auto;" /> CSEC
<input id="cape" name="acadachieve[0]" type="checkbox" value="cape" style="height: auto;" /> CAPE
<input id="tertiary" name="acadachieve[0]" type="checkbox" value="cape" style="height: auto;" /> Tertiary
<select id="csecsub" name="csecsub[0][]">
<option value="">-Select Subject-</option>
<option value="Additional Mathematics" selected>Additional Mathematics</option>
<option value="Agricultural Science DA">Agricultural Science DA</option>
<option value="Agricultural Science SA">Agricultural Science SA</option>
</select>
<select id="csecgrade" name="csecgrade[0][]">
<option value="">-Select Grade-</option>
<option value="1">1</option>
<option value="2" selected>2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select id="csecsub" name="csecsub[1][]">
<option value="">-Select Subject-</option>
<option value="Additional Mathematics">Additional Mathematics</option>
<option value="Agricultural Science DA" selected>Agricultural Science DA</option>
<option value="Agricultural Science SA">Agricultural Science SA</option>
</select>
<select id="csecgrade" name="csecgrade[1][]">
<option value="">-Select Grade-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4" selected>4</option>
<option value="5">5</option>
</select>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
答案 1 :(得分:0)
以下代码显示了我如何以以下方式显示它:
csecsub[0][0]={'NYU', 'Additional Mathematics', '3'}
csecsub[0][1]={'NYU', 'Agricultural Science DA', '1'}
csecsub[1][0]={'MIT', Agricultural Science DA', '1'}
csecsub[1][1]={'MIT', Agricultural Science SA', '1'}
下面的代码有点混乱,但这就是我解决它并使它正常工作的方式
var acadachieve = $.map($('input[name*="acadachieve"]:checked'), function(e) { return e.value; });
acadachieve = acadachieve.filter(Boolean);
var school = $.map($('input[name^=school]'), function(e) { return e.value; });
school= school.filter(Boolean);
for(var i = 0; i < school.length; i++){
if (acadachieve[i]==="csec") {
var $csecsub = $("select[name*=csecsub] option:selected");
var $csecgrade = $("select[name*=csecgrade] option:selected");
var school1 ="";
var z=0;
var x=0;
var loop=0;
var results=[];
var results1=[];
var hm="";
var hm1="";
while(z<1){
results = $.map($csecsub,function(el, i) {
if($(el).closest('.scoolWrapperClass0').find('input[name*=school]').val()!=undefined && el.value!="" ){
return [[ school1 = $(el).closest('.scoolWrapperClass0').find('input[name*=school]').val(), el.value, $csecgrade.eq(i).val()]]
}
});
results=results.filter(Boolean);
results1 = $.map($csecsub,function(el, i) {
if($(el).closest('.scoolWrapperClass1').find('input[name*=school]').val()!=undefined && el.value!=""){
return [[ school1 = $(el).closest('.scoolWrapperClass1').find('input[name*=school]').val(), el.value, $csecgrade.eq(i).val()]]
}
});
results1=results1.filter(Boolean);
//write the result to a table in html
hm+=('<tr style="width: 100%;"><th style="border: 2px solid black; color: #2199e8; width: 40%;"> School/College </th> <th style="border: 2px solid black; color: #2199e8; width: 10%;"> Academic Achievment </th><th style="border: 2px solid black; color: #2199e8; width: 30%;"> Subject </th> <th style="border: 2px solid black; color: #2199e8; width: 20%;"> Grade </th></tr>');
z++;
}
///loop one for first school
for(loop = 0; loop < results.length; loop++){
//alert(results[loop].toString().split(","));
try { ///exception handling
//write the result to a table in html
hm+=('<tr style="width: 100%;" ><td style="border: 2px solid black; width: 40%;" >'+results[loop].toString().split(",")[0]+'</td> <td style="border: 2px solid black; width: 10%;" >' + acadachieve[i]+ '</td> <td style="border: 2px solid black; width: 30%;" >' + results[loop].toString().split(",")[1] + '</td> <td style="border: 2px solid black; width: 20%;" >' + results[loop].toString().split(",")[2]+ '</td></tr>');
$('#display_achievment').html(hm);
}
catch (e) {
if (!(e instanceof TypeError)) {
// The exception is not a TypeError, so throw it again.
throw e;
}
}
}
///loop two for second school
for(loop = 0; loop < results1.length; loop++){
try {
hm1+=('<tr style="width: 100%;" ><td style="border: 2px solid black; width: 40%;" >'+results1[loop].toString().split(",")[0]+'</td> <td style="border: 2px solid black; width: 10%;" >' + acadachieve[i]+ '</td> <td style="border: 2px solid black; width: 30%;" >' + results1[loop].toString().split(",")[1] + '</td> <td style="border: 2px solid black; width: 20%;" >' + results1[loop].toString().split(",")[2]+ '</td></tr>');
$('#display_achievment1').html(hm1);
}
catch (e) {
if (!(e instanceof TypeError)) {
// The exception is not a TypeError, so throw it again.
throw e;
}
}
}
}
}
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>