我有以下内容在我的应用中启动对话框:
$('.dialogDo').live('click', function() {
// Do we have a custom width?
var width = this.search.match(/width=(\d+)/)[1];
if (width) {
dialogDo(this.href, width);
}
else {
dialogDo(this.href, 480);
}
return false;
});
如果在href中定义了触发上述单击功能的宽度,则此方法可以正常工作。问题是如果未定义宽度则会中断。如果仍然保持使用宽度的功能,如何处理未定义的宽度?
由于
答案 0 :(得分:2)
一种选择是使用默认宽度。
var matched = this.search.match(/width=(\d+)/);
var width = matched ? matched[1] : DEFAULT_WIDTH;
编辑 - 如果没有匹配,匹配可以返回null,并且您不能索引为null。 (感谢@Chris)
答案 1 :(得分:2)
如果javascript match函数不匹配则返回null,如果是,则返回结果数组。因此,在使用[1]
对其进行索引之前,您需要检查结果是否实际上是一个数组。例如:
var width = this.search.match(/width=(\d+)/);
if (width) {
dialogDo(this.href, width[1]);
}
else {
dialogDo(this.href, 480);
}
答案 2 :(得分:0)
试试这个
$('.dialogDo').live('click', function() {
// Do we have a custom width?
var width = this.search.match(/width=(\d+)/)[1];
if (!isNaN(width)) {
dialogDo(this.href, width);
}
else {
dialogDo(this.href, 480);
}
return false;
});