jquery data()方法在IE9中不起作用

时间:2013-03-14 08:57:53

标签: javascript jquery internet-explorer-9

我有以下链接:

<a href="/Packages/PackageActionDownloadAsync" data-ajax-type="Download" data-ajax-packageid="AGI-VS-GAME-M52-1.5.3.2.67" data-ajax-machineid="30" class="iconGear action tip" data-hasqtip="true" oldtitle="Download" title="" aria-describedby="qtip-1">Download</a>

和javascript代码:

       var obj = $(this),
            objData = obj.data(),
            packageId = objData.ajaxPackageid,
            operation = objData.ajaxType;

我试过了:

alert(objData.ajaxPackageid);
alert(objData.ajaxPackageId);
alert(objData.AjaxPackageId);

他们都返回“未定义”。唯一有效的是:

alert(objData.ajaxType);

发生了什么事? 我正在使用“jquery-1.7.1.js”

2 个答案:

答案 0 :(得分:4)

我很惊讶他们中的任何都像这样访问他们。您需要通过jQuery中的字符串名称访问它们。像这样:

var obj = $(this);
alert(obj.data("ajax-packageid"));
alert(obj.data("ajax-type"));
alert(obj.data("ajax-machineid"));

查看 jquery .data对象

DEMO: http://jsfiddle.net/xFmn3/

答案 1 :(得分:2)

您需要将要接收的数据的密钥传递给data()函数。

   var obj = $(this),
   packageId = obj.data("ajax-packageid"),
   operation = obj.data("ajax-type");

工作示例: http://jsfiddle.net/sUSCe/