我正在通过jQuery AJAX在WordPress中签出订单。成功发布后,WordPress会以success
值和url
值的结果返回给我。
我想获取此url
的特定部分,以便可以将id
用作对象。
这是网址的结构:
http://localhost/mywebsite/checkout/order-received/28564?key=wc_order_5b4dbc6b2f459
这是我当前的代码:
j('.my-checkout').on('submit', function(evt) {
evt.preventDefault();
var billing_customer_type = j("#billing_customer_type").val();
// and so on...
j.ajax({
type: 'POST',
url: 'http://localhost/mywebsite/ajax=checkout',
cache: false,
data: {
'billing_customer_type': billing_customer_type,
// and so on..
},
success: function(result) {
var orderResponseUrl = result.redirect;
j('.order-response-url').html(orderResponseUrl);
// http://localhost/mywebsite/checkout/order-received/28564?key=wc_order_5b4dbc6b2f459
orderResponseUrl.split("/");
console.log(orderResponseUrl[3]);
},
error: function(xhr, status, error) {
console.log(error);
},
complete: function() {}
});
});
我上面的代码的结果就是字母“ p”。我认为是因为它以http
的第一个字母开头,所以我使用了索引[3]
。
您知道我如何获得url
的特定部分,即28564
?
答案 0 :(得分:1)
因为当您执行orderResponseUrl.split("/");
时,它不会更改orderResponseUrl
,所以会创建一个新数组。
var parts = orderResponseUrl.split("/");
console.log(parts);
答案 1 :(得分:1)
如果长度始终相同,则可以使用子字符串功能。
var str = "Hello world!";
var res = str.substring(1, 4);
现在资源包含
console.log(res); // ell
如果您不知道索引,则可以找到类似的内容。
var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome");
现在看起来像
console.log(n); // 13
答案 2 :(得分:1)
如果您需要与之交互的URL始终相同,则可以在“ order-received /”部分分割返回的URL(该部分提供了之前和之后的所有内容的数组)。
然后而不是再次在'?'上拆分,这是另一种方法-您可以使用#flexCatalog {
width: 100%;
height: 600px;
display: flex;
flex-wrap: wrap;
}
.section {
display: block;
position: relative;
height: 200px;
}
#r1s1{
width: calc(100% / 12 * 8);
background: url("../images/catalog1.jpg");
}
#r1s2{
width: calc(100% / 12 * 4);
background: url("../images/catalog2.jpg");
}
#r2s1{
width: calc(100% / 12 * 6);
background: url("../images/catalog3.jpg");
}
#r2s2{
width: calc(100% / 12 * 6);
background: url("../images/catalog4.jpg");
}
#r3s1{
width: calc(100% / 12 * 3);
background: url("../images/catalog5.jpg");
}
#r3s2{
width: calc(100% / 12 * 4);
background: url("../images/catalog6.jpg") center center;
}
#r3s3{
width: calc(100% / 12 * 5);
background: url("../images/catalog7.jpg");
}
#gridText {
display: inline-block;
position: relative;
top:0 90%;
margin-left: 10px;
background: rgba(255, 255, 255, 0.7);
}
获取订单号,因为parseFloat返回所有数值,但不包括第一个数值,因此可以使用非数字字符(“?”)。
parseFloat()