javascript - 警报($(obj).attr ("id"))有效;但 $(obj).attr ('id' ) 未定义

标签 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 ");
  }

最佳答案

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

       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");
           });
       });

   }

关于javascript - 警报($(obj).attr ("id"))有效;但 $(obj).attr ('id' ) 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45127950/

相关文章:

javascript - 当输入字段位于 ng-repeat 中时,ng-disabled 不起作用

javascript - 当尝试禁用 anchor 链接的 onbeforeunload 时,在 mouseclick 之前调用 mouseleave

javascript - 单击时的 Jquery 类选择器

javascript - 日历不适用于 jQuery 1.9.1(但它适用于 jQuery 1.7.1)

javascript - 获取索引不是从 0 开始的数组中的第一个元素

javascript - 多种功能的导出模块

javascript - 如何在 DIMPLE js 的饼图中显示百分比

javascript - 如果键已经存在,如何创建对象的json数组

jquery - 将图像放大至全屏,保持宽高比,然后居中。

c# - 仅将一个字符串从 $.ajax 发送到 C#