过滤json数组的Javascript对象
我在HTML表单中有多个复选框。当我单击一个按钮时,选中的值被放入一个JavaScript对象中,并触发一个过滤函数过滤json数组的Javascript对象,javascript,jquery,json,Javascript,Jquery,Json,我在HTML表单中有多个复选框。当我单击一个按钮时,选中的值被放入一个JavaScript对象中,并触发一个过滤函数 this.filterChkbx.on('click', function() { _this.checkedFilter.push({ filterEl: this.value }); }); 在filter函数中,我提取一个json文件 $.ajax("ajax/search-test-data.json") .done(function (
this.filterChkbx.on('click', function() {
_this.checkedFilter.push({
filterEl: this.value
});
});
在filter函数中,我提取一个json文件
$.ajax("ajax/search-test-data.json")
.done(function (data){
...
现在我想显示与表单中的值匹配的对象。这就是我的json的样子:
{
"searchtest" : [
{
"id" : "001",
"section": "Hochschule",
"group": "Professoren",
"location": "Kaiserslautern",
"date": "HS 2015/11",
"description" : "Lorem ipsum dolor sit amet",
"details" : "VZ",
"deadline" : "27.12.2015",
"topic" : "Lorem"
},
{
"id" : "002",
这是我的表格:
<form class="filterThisResults" action="ajax/search-test-data.json" method="GET">
<ul class="filter-list">
<button type="reset">Filter löschen</button>
<div class="search-filter-section">
<li>
<h2>Bereich</h2>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="section" value="Hochschule">
<label for="check1">Hochschule</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="section" value="Angewandte Ingenierwissenschaften">
<label for="check2">Angewandte Ingenierwissenschaften</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="section" value="Bauen & Gestalten">
<label for="check3">Bauen & Gestalten</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="section" value="BWL">
<label for="check4">BWL</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="section" value="Informatik">
<label for="check5">Informatik</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="section" value="Logistik">
<label for="check6">Logistik</label>
</li>
</div>
<div class="search-filter-group">
<li>
<h2>Gruppen</h2>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="group" value="Professoren">
<label for="check1">Professoren</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="group" value="Studenten">
<label for="check2">Studenten</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="group" value="Angestellte">
<label for="check3">Angestellte</label>
</li>
</div>
<div class="search-filter-location">
<li>
<h2>Standort</h2>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="location" value="Kaiserslautern">
<label for="check1">Kaiserslautern</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="location" value="Pirmasens">
<label for="check2">Pirmasens</label>
</li>
<li>
<input class="filterCheckbx" type="checkbox" name="location" value="Zweibrücken">
<label for="check3">Zweibrücken</label>
</li>
</div>
<div class="search-filter-topic">
<li>
<h2>Thema</h2>
</li>
<li>
<select class="filterCheckbx" id="topic" name="topic" size="3">
<option value="Lorem">Lorem</option>
<option value="Ipsum">Ipsum</option>
<option value="Dolor">Dolor</option>
</select>
</li>
</div>
<li>
<button class="submit-filter" type="submit">Ergebnisse anzeigen</button>
<li>
</ul>
</form>
过滤löschen
-
贝雷希
-
霍克舒勒
-
Angewandte Ingenierwissenschaften
-
鲍恩和盖斯泰尔滕
-
BWL
-
信息学
-
罗吉斯蒂克
-
格鲁本
-
教授
-
学生
-
安格斯特尔特
-
立场
-
凯瑟斯劳滕
-
皮尔马森斯
-
兹韦布吕肯
-
西玛
-
洛勒姆
乱数假文
多洛
-
麦角尼斯
-
通过json检查哪些项目是正确的方法是什么。当选择表单部分中的多个项目时,结果会放大 :
创建一个新数组,其中包含通过所提供函数实现的测试的所有元素
:
测试数组中的某些元素是否通过所提供函数实现的测试
这更像是伪代码,因为您可能需要根据变量的作用域/类型稍微调整变量(
checkFilter
,data
)。而是在对象中推送值,为什么不尝试使用jQuery的“序列化”对象属性呢
尝试将所有表单数据存储在单个字符串中,然后使用文件管理器和一些方法来匹配这些值
function showValues() {
var str = $( "form" ).serialize();
console.log(str);
}
$('[type=reset]').on("click",function(e){
showValues();
event.preventDefault();
})
for循环的可能副本将非常巨大,我已经为测试实现了它。工作-但是干净漂亮看起来有点不一样^^^看起来很整洁!尝试实现它,并在几个小时内给你反馈!提前谢谢!哇,这是直截了当的!工作非常简单,谢谢你的解释!祝你有个好的日伴
function showValues() {
var str = $( "form" ).serialize();
console.log(str);
}
$('[type=reset]').on("click",function(e){
showValues();
event.preventDefault();
})