Javascript 如何使用jquery删除此代码的空格和加号

Javascript 如何使用jquery删除此代码的空格和加号,javascript,jquery,Javascript,Jquery,我想删除空格和加号,现在我正在获取“个人住宅”,我想通过AJAX将此值传递到下一页,还有一些额外的内容: searchProperties?propertyType=%5B%22+/code>

我想删除空格和加号,现在我正在获取“个人住宅”,我想通过AJAX将此值传递到下一页,还有一些额外的内容:

searchProperties?propertyType=%5B%22
+/code>
%22%2C%22
<22%5D


我想像这样传递AJAX数据URL:

searchProperties?propertyType=“[“个人住宅”、“行住宅”]”

函数createJSON(){
属性类型=[];
$('#属性类型:选中')。每个(函数(){
//属性_type.push($(this.val());
属性_type.push(jQuery.trim($(this.val().replace(/\s+/g,,));//[“个人+房屋”,“行+房屋”]
});
var property_typejson=JSON.stringify(property_type),
数据={};
如果(属性类型!='')
数据['propertyType']=属性类型JSON;
控制台日志(数据);
$.ajax({
键入:“GET”,
url:“map.php”,
数据:数据,
成功:功能(数据){
控制台日志(数据);
},
错误:函数(errMsg){
console.log(errMsg);
}
});
}

个人住宅
排房
别墅


更新搜索
我对这一点做了很大的改变:

向按钮添加一个ID,在其上设置一个单击侦听器,将GET更改为POST请求,将数据更改为合法的JSON,并编写一些PHP来读取另一端的JSON

另外,我已经将您的函数重命名为
submitAjax()
,因为这对我来说更符合逻辑

$(文档).ready(函数(){
$(文档)。在(“单击”上,“#btnSubmitJson”,函数(e){
e、 preventDefault();//不要正常提交表单,我们将使用jQuery处理
submitAjax();
});
});
函数submitAjax(){
var属性_type=[];
$(“.property\u type:checked”)。每个(函数(){
属性_type.push($(this.val());//您不需要修剪,您的值不以空格开头或结尾,用“”替换\s实际上对给定的值没有任何作用
});
var jsonData={
属性类型:属性类型
};
jsonData.other_var=“something other”//向对象添加更多内容
console.log(“jsonData:,jsonData);//您可以console.log退出多个项目,我喜欢包含一个标签,这样我就知道我在看什么了
$.ajax({
类型:“POST”,
url:“map.php”,
资料来源:jsonData,
成功:功能(数据){
console.log(“成功:”,数据);
},
错误:函数(errMsg){
log(“错误:”,errMsg);
}
});
}

个人住宅
排房
别墅


更新搜索
HTML:HTML对象中的ID必须是唯一的,因此我更新了您的HTML:

               <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
                <!-- your ids should be -->
                <input type="checkbox" id="IndividualHouse" name="property_type[]"
                       value="Individual House" /> Individual House
                <input type="checkbox" id="RowHouse" name="property_type[]"
                       value="Row House" /> Row House
                <input type="checkbox" id="Villa" name="property_type[]"
                       value="Villa" /> Villa

                <br></br>

                <button type="button"  id="btnUpdateSearch">
                    <i class="fa fa-search"></i>Update search
                </button>

个人住宅
排房
别墅


更新搜索
然后简化JavaScript以利用ID

                    $(function ($) {
                        $("#btnUpdateSearch").click(function () {
                            $chk = $("input:checked");
                            var arr = [];
                            $chk.each(function () { arr.push(this.id); })

                            var data = { 'propertyType': JSON.stringify(arr) };

                            $.ajax({
                                type: 'GET',
                                url: "map.php",
                                data: data,
                                success: function (data) {
                                    console.log(data);
                                },
                                error: function (errMsg) {
                                    console.log(errMsg);
                                }
                            });
                        });

                    });

                </script>
$(函数($){
$(“#btnUpdateSearch”)。单击(函数(){
$chk=$(“输入:选中”);
var-arr=[];
$chk.each(函数(){arr.push(this.id);})
var data={'propertyType':JSON.stringify(arr)};
$.ajax({
键入:“GET”,
url:“map.php”,
数据:数据,
成功:功能(数据){
控制台日志(数据);
},
错误:函数(errMsg){
console.log(errMsg);
}
});
});
});

你的问题是什么?您想要传递的不是JSON,因为字符串没有被引用。我的问题是,在传递(下一页)值时,我想删除空格和%和+我想您不会这样做<代码>%5B
=
[
必须进行编码,因为它是URL中的一个特殊字符。请更新您的答案
+
表示URL中的空格。为什么不改为使用POST请求将数据作为JSON发送?此外,您不应该有多个ID相同的元素。请将
ID=“property\u type”
更改为
类=“property_type”
。我在检查完值后的问题,我想在另一个页面中传递,而传递给我时,它将使用空格和%like传递map.php?propertyType=%5B%22IndividualHouse%22%2C%22RowHouse%22%5d但我的案例不希望这样,map.php?propertyType=[“individualhouse.”RowHouse“]“但我的案例不希望这样,map.php?propertyType=“[”个人住宅,“RowHouse”]”map.php?propertyType=“[”个人住宅。“RowHouse”]“无效。如果您希望这样做,则需要先进行字符串化,然后在另一端进行url编码和反转。我想我仍然不完全理解您试图执行的操作。我尝试将您的代码作为GET方法,但也没有得到map.php?另一个_var=something%20else为什么要使用GET?”?