alert($(obj).attr(" id"))工作;但$(obj).attr(' id')未定义

时间:2017-07-16 11:19:24

标签: javascript jquery

所以我试图链接到弹出窗口,

当我使用getId = alert($(obj).attr("id"))进行测试时,它显示了id值;

但当我将其更改为getId = $(obj).attr('id')时,该值变为undefined

对此有何解决方案?



// Pop-up window
var windowObject;
var getId;
openPopup(this.id);

function openPopup(obj) {
  $(document).ready(function() {
    $('.all').click(function() {
      getId = $(obj).attr('id');
      //getId = alert($(obj).attr("id"));
    });
  });
  windowObject = window.open("slideshow/" + getId + ".html", "popup", width = 800, height = 500 ");
  }




1 个答案:

答案 0 :(得分:1)

您的getId变量仅在您的点击处理函数中定义。这就是为什么这个函数内部的警报工作正常(以及getId = $(obj).attr('id');),但在最后一个代码字符串(在单击回调之外)中未定义的原因。要修复它,请移动单击处理函数中的最后一个字符串:

       function openPopup(obj) {
       $(document).ready(function() {
           $('.all').click(function() {
               getId = $(obj).attr('id');
               //getId = alert($(obj).attr("id"));
               windowObject = window.open("slideshow/" + getId + ".html", "popup", "width=800,height=500");
           });
       });

   }