什么是正确的语法jQuery中
我有一个jQuery的功能,在提交事件产生url.If一个没有定义的参数,增添网址应跳过什么是正确的语法jQuery中
var category =$("#prod_category").val();
var group =$("#prod_group")
window.location.href = "/page/" +
**//add to url if category is definned**
encodeURI(category) + "/" +
**//add to url if group is definned**
encodeURI(group) + "/" +
你可以简单的状态if (category)
。如果category
的值长度大于零,则将返回true
。
var url = "/page/";
if (category){
url = url + encodeURI(category) + "/";
}
if (group){
url = url + encodeURI(group) + "/";
}
编辑:当设定值以category
和group
确保你修剪该元件可以含有任何空白。例如:
var category = $.trim($("#prod_category").val());
在元素确实存在的表单元素中。这就是为什么简单的检查是不够的。在这种情况下,jQuery将返回空值,如果它的空间,那么你会怎么做? – 2012-07-17 11:13:17
@ZahidRiaz我已经看到你的答案,我明白你在说什么,但我不认为这是'修剪'的正确位置。对象'类别'应该是空白或正确的值。它被称为'category',而不是'prod_category_val'。因此它应该是一个已经验证过的类别名称。在if语句之前应该进行裁剪。我会编辑我的回答,提到这一点,但我不相信它值得一个downvote。 – Curt 2012-07-17 11:20:31
做编辑答案。我会撤销我的选择。 – 2012-07-17 11:22:36
使用
if($.trim(category) != ''){
}
if($.trim(group) != ''){
}
尝试:
var category =$.trim($("#prod_category").val());
var group =$.trim($("#prod_group").val());
var urlVal = "/page/";
if(category !== "") {
urlVal += encodeURI(category);
}
if(group !== "") {
urlVal += encodeURI(group);
}
window.location.href = urlVal;
您可以通过这样做$ .grep:
var category = $.trim($("#prod_category").val());
var group = $.trim($("#prod_group").val());
window.location.href = '/page/' + $.grep([category, group], function(s) { return s != null && s.length }).join('/');
值得关注的是你正在寻找香草JavaScript语法 - 没有必要使用jQuery作为'if's tatement。 – 2012-07-17 10:17:07