jQuery - 处理null / undefined响应

时间:2013-08-26 00:21:19

标签: jquery null undefined

哪里出错:

$('#prod').on('click', '.doc', function() {
 var src = this.value;
     if (! src) {
         var url = this.id;
          window.open('' + url + '');
  } else {
       var encodedSrc = encodeURIComponent(src);   
        $('#inner').html('<iframe id = dFrame src = http://docs.google.com/viewer?url=' + encodedSrc + '&embedded=true></iframe>');

类.doc是指div'prod'中的几个动态生成的按钮。它们都具有id和值,用于将链接传递给click函数。按钮的值是指文档,URL的ID。没有按钮在id和value中都有数据 - 目的是有时单击按钮将在按钮id中指定的URL处打开一个新窗口;在其他时候,它将在iframe中打开Goog​​le阅读器并显示按钮值中引用的文档。上面的代码意味着:

从点击的按钮中获取值; 如果为null,则获取id并在id中的URL处打开一个新窗口; 如果它不为null,则URIencode按钮值并加载Google阅读器。

我可以让一个或另一个工作,但不能同时工作。

1 个答案:

答案 0 :(得分:0)

不是原始问题的答案,但如果有人感兴趣,可以获得相同结果的解决方法。

$('#prod').on('click', '.doc', function() { 
    var src = this.value; 
    if (src.match('com$')) { 
      window.open('' + src + ''); 
 } else { 
    var encodedSrc = encodeURIComponent(src); 
    $('#inner').html('<iframe id = dFrame src = http://docs.google.com/viewer?url=' + encodedSrc + '&embedded=true></iframe>');

如果按钮值是文件,则会在按钮点击时通过Google查看器将其加载到iframe中;如果它是一个网址,它将被加载到一个新窗口。