include values in a javascript string with '+='
include values in a javascript string with '+='
我有以下函数:
function generateJSONstringforuncheckedfilters(){
jsonstring = '';
jsonstring = "[";
$('body').on('click', 'input', function(){
jsonstring += "[{'OrderGUID': '"+ $(this).attr('data-orderguid') +"' 'FilterGUID': '"+ $(this).attr('data-filterguid') +"', 'nValue': 0, 'Value': '"+ $(this).attr('value') +"', 'Operator': 'NULL', 'Unit': 'NULL'}";
});
jsonstring += "]";
console.log(jsonstring); // Output: []
}
我的输出是这个=[]
但我想实现这一点:
[{'OrderGUID': '46dd8c82-44a6-4dc5-9517-320c31645211' 'FilterGUID': '17caabea-c313-48c9-b965-739ef8d09a1f', 'nValue': 0, 'Value': 'volladressierbar', 'Operator': 'NULL', 'Unit': 'NULL'}]
如果我再次点击复选框字段,jsonstring必须像这样展开:
[
{'OrderGUID': 'aaaaaa' 'FilterGUID': '17caabea-c313-48c9-b965-739ef8d09a1f', 'nValue': 0, 'Value': 'volladressierbar', 'Operator': 'NULL', 'Unit': 'NULL'},
{'OrderGUID': 'bbbbbb' 'FilterGUID': '17caabea-c313-48c9-b965-739ef8d09a1f', 'nValue': 0, 'Value': 'volladressierbar', 'Operator': 'NULL', 'Unit': 'NULL'}
]
我希望你能理解我的问题。
编辑:
这些是我的复选框:
<input type="checkbox" checked="checked" id="check1" value="volladressierbar" name="volladressierbar" data-filterguid="17caabea" data-orderguid="aaaa" count="1"> volladressierbar
<input type="checkbox" checked="checked" id="check1" value="teiladressierbar" name="teiladressierbar" data-filterguid="18cagbea" data-orderguid="bbbb" count="1"> teiladressierbar
你可以试试这样的东西:
var uncheckedFilters = [];
function generateJSONstringforuncheckedfilters(){
$('body').on('click', 'input', function() {
var checkboxSelector = $(this);
var checkboxFilterGUID = checkboxSelector.attr('data-filterguid');
if(checkboxSelector.is(':checked')) {
uncheckedFilters.forEach(function(filter) {
if(filter.FilterGUID === checkboxFilterGUID) {
var filterIndex = uncheckedFilters.indexOf(filter);
if(filterIndex > -1) {
uncheckedFilters.splice(filterIndex, 1);
}
}
});
} else {
uncheckedFilters.push({
OrderGUID: checkboxSelector.attr('data-orderguid'),
FilterGUID: checkboxFilterGUID,
nValue: 0,
Value: checkboxSelector.attr('value'),
Operator: 'NULL',
Unit: 'NULL'
});
}
console.log(JSON.stringify(uncheckedFilters));
});
}
通过这种方式,您可以生成一个过滤器对象数组,只需使用json.stringify将其转换为json,就像我上面的例子一样。
JSFiddle:https://jsfiddle.net/7j4g0ddb/
尝试这个
$('body').on('click', 'input', function(){
var jsonstring = '';
jsonstring = "[";
$( 'body' ).find( "input[type='checkbox']:checked" ).each( function(){
jsonstring += generateJSONstringforuncheckedfilters( $( this ) ) ;
} );
jsonstring += "]";
console.log(jsonstring);
});
function generateJSONstringforuncheckedfilters( $thisObj )
{
return "{'OrderGUID': '"+ $thisObj.attr('data-orderguid') +"' 'FilterGUID': '"+ $thisObj.attr('data-filterguid') +"', 'nValue': 0, 'Value': '"+ $thisObj.attr('value') +"', 'Operator': 'NULL', 'Unit': 'NULL'}";
}
首先,为了提供信息,所有元素都只是HTML文档上的一个类似Id(您可以查看W3C规范),它用于您的HTML代码:
<input type="checkbox" checked="checked" id="check1" value="volladressierbar" />
<input type="checkbox" checked="checked" id="check1" value="teiladressierbar" />
<!-- Id of both Elements is similar -->
这是正确的:
<input type="checkbox" checked="checked" id="check1" value="volladressierbar" />
<input type="checkbox" checked="checked" id="check2" value="teiladressierbar" />
此外,您还可以检查javascript代码:
$('body').on('click', 'input', function(){
var arrayJson = [];
// get all input checked
$( 'body' ).find( "input[type='checkbox']:checked" ).each( function(){
var recupObject = "{'OrderGUID': '"+ $(this).attr('data-orderguid') +"' 'FilterGUID': '"+ $(this).attr('data-filterguid') +"', 'nValue': 0, 'Value': '"+ $(this).attr('value') +"', 'Operator': 'NULL', 'Unit': 'NULL'}";
arrayJson.push(recupObject);
});
// create a json with all data input getted.
if (arrayJson.length > 0){
var jsonOutput = "[";
for (index = 0; index < arrayJson.length; index++) {
jsonOutput += arrayJson[index] + ",";
}
jsonOutput = jsonOutput.substring(0, jsonOutput.length-1); // remove last ','
jsonOutput += "]";
}
console.log(jsonOutput ); // Log the Json output
});
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Fighting with FRP
- issue with FB.Event.subscribe
- geolocation-marker.js conflict with markerclusterer.js
- Angular 2.0 with JavaScript or TypeScript?
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- WebComponentsJS with IE10
- 指令的模板必须只有一个根元素:With restrict E&替换true
- timeago.js with datatable and PHP
- how to split a string with ','
- Javascript/jQuery String issue with IE8
- split Array with value - like String.split
- Node.js with Geddy:geddy.string.uuid(x) 是否确保字符串是唯一的
- setInterval or setTimeout with String in JavaScript
- include values in a javascript string with '+='
- javascript .split() string with <p> </p> and
- Array.map with String.trim
- Compare jquery .data() with String always false
- Javascript | Can't replace with String.replace()
- Javascript string.prototype.contains() with locale