我有一张桌子,价值来自json,我需要'forkscount'列中的关键总数,这里总共有11个'关键'但是如何获得该值,我已经尝试过控制台和警报但我没有成功,如果有人知道请需要帮助,谢谢Advance.Below是我执行的代码html,javascript,css,json,这只能在localhost中打开。如果你直接想通过点击index.html打开它不会开放。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="js/script.js"></script>
<div class="col-md-12">
<div class="col-md-4 critical-box" id="critical">critical</div><div id="major" class="col-md-4 major-box">major</div><div id="test" class="col-md-4 All-box">All</div>
</div>
<div id="div">
<div>
<table id="example">
<thead>
<tr>
<th style="display:none;">test</th>
<th>name</th>
<th>stargazerscount</th>
<th>forkscount</th>
<th>description</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div>ssss</div>
</div>
$.ajax({
url: "http://localhost/bootstrap-tablefilter/js/members.json",
type: "POST",
dataType:"json",
success: function (response)
{
// var trHTML = '';
$.each(response, function (key,value) {
$('table#example TBODY').append('<tr><td style="display:none;">test</td><td>'+value.name+'</td><td>'+value.stargazerscount +'</td><td ><span class="'+ value.forkscount +'">'+value.forkscount +'</span></td><td>'+value.description +'</td></tr>');
// var x;
if(value.forkscount == 'critical'){
var y=value.forkscount.length;
console.log(y);
// var n = $(y).;
}
});
// $('#table').append(trHTML);
}
});
$(document).ready( function () {
$('#example tbody tr td span.critical').closest('tr').addClass('critialrow');
$('#example tbody tr td span.major').closest('tr').addClass('majorrow');
// $('#example').DataTable();
var tables = $('#example').DataTable({
dom : '2<"#add">frtip',
"language": {
"paginate": {
"previous": "< Previous",
"next": "next >"
}
}
})
$('<label/>').text('Search Column:').appendTo('#add')
$select = $('<select/>').appendTo('#add')
$('<option/>').val('All').text('All').appendTo($select);
$('<option/>').val('0').text('name').appendTo($select);
$('<option/>').val('1').text('stargazerscount').appendTo($select);
$('<option/>').val('2').text('forkscount').appendTo($select);
$('<option/>').val('3').text('description').appendTo($select);
$('input[type="search"]').on( 'keyup change', function () {
var searchValue = $(this).val();
var columnSearch = $select.val();
if(columnSearch == 'All'){
tables.search(searchValue).draw();
} else {
tables.columns(columnSearch).search(searchValue).draw();
}
});
$("div").delegate(".major-box", "click", function(){
var majorValue = $(this).attr('id');
if(majorValue== 'major'){
tables.search(majorValue).draw();
$("#example_filter input").addClass('white');
}
});
$(".critical-box").bind("click", function(){
var criticalssValue = $(this).attr('id');
if(criticalssValue== 'critical'){
tables.search(criticalssValue).draw();
}
});
$("div").delegate(".All-box", "click", function(){
var criticalssValue = $(this).attr('id');
alert(criticalssValue);
if(criticalssValue== 'test'){
tables.search(criticalssValue).draw();
}
});
});
[{
"name": "mango",
"stargazerscount": 526,
"forkscount": "critical",
"description": "fruits"
},
{
"name": "brinjal",
"stargazerscount": 526,
"forkscount": "critical",
"description": "vagetables"
},
{
"name": "grapes",
"stargazerscount": 526,
"forkscount": "major",
"description": "fruits"
},
{
"name": "soap",
"stargazerscount": 526,
"forkscount": "major",
"description": "groceries"
},
{
"name": "dates",
"stargazerscount": 526,
"forkscount": "critical",
"description": "dryfruits"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "shirt",
"stargazerscount": 526,
"forkscount": "critical",
"description": "clothes"
},
{
"name": "dates",
"stargazerscount": 526,
"forkscount": "critical",
"description": "dryfruits"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "shirt",
"stargazerscount": 526,
"forkscount": "critical",
"description": "clothes"
},
{
"name": "shirt",
"stargazerscount": 526,
"forkscount": "critical",
"description": "clothes"
},
{
"name": "dates",
"stargazerscount": 526,
"forkscount": "critical",
"description": "dryfruits"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "shirt",
"stargazerscount": 526,
"forkscount": "critical",
"description": "clothes"
},
{
"name": "dates",
"stargazerscount": 526,
"forkscount": "critical",
"description": "dryfruits"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "mobiles",
"stargazerscount": 526,
"forkscount": "major",
"description": "electronics"
},
{
"name": "shirt",
"stargazerscount": 526,
"forkscount": "critical",
"description": "clothes"
}
]
答案 0 :(得分:1)
创建一个全局var&#34; count&#34;并增加每个&#34;当forkscount是&#34; critical&#34;。
时循环var count = 0;
...
$.ajax({
url: "http://localhost/bootstrap-tablefilter/js/members.json",
type: "POST",
dataType:"json",
success: function (response)
{
$.each(response, function (key,value) {
...
if(value.forkscount == 'critical')
count++;
...
});
}
...
});
您也可以使用承诺在&#34;每个&#34;之后获得价值。结论
$.each(response, function (key,value) {
...
if(value.forkscount == 'critical')
count++;
...
}).promise().done(function(){
alert("Total 'criticals': " + count);
});