jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery通过.data()无法为键分配值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单(一个人会想到)的任务.

将值传递给弹出窗口,并根据单击(继续或取消)使用传递的值执行操作.

// on click we pass the value to the function tesTing - so far so good
$('#numbers').delegate('.icondelete','click',function(){
    tesTing( $(this).attr('data-options') ); 
});

我将找到的值传递给函数,然后尝试将其赋值给一个

function tesTing(id){
   //we can see that it passed successfully
    alert("here it is: " + id); 

     //push the data into key data-id
    $('#dodelete').data('data-id',id);

//but this alert doesn't return the value
alert("it should be here shouldn't it? " + $('#dodelete').attr('data-id'));
    }

HTML

<div id='numbers' >
<div class='icondelete'  data-options='123' >Set data-options as 123 - click here to test</div>
</div>

<br><br>
<div id='dodelete' data-id=''>landing div</div>

如果您查看小提琴http://jsfiddle.net/Microbe/cRLfC/4/,您可以看到该值传递给函数no probs,但是当我尝试将其分配给键时它不会.

我哪里错了?

解决方法

使用.data()时,请勿添加数据前缀.读取值时,请使用.data(“key”),而不是.attr().我建议阅读 this并查看代码示例.

所以你的代码应该是这样的

function tesTing(id) {
   //we can see that it passed successfully
    alert("here it is: " + id); 

     //push the data into key myid
    $('#dodelete').data('myid',id);

    //but this alert doesn't return the value
    alert("it should be here shouldn't it? " + $('#dodelete').data('myid'));
}

通过.data()设置值实际上并不在具有该值的对象上设置属性/属性.数据实际上存储在jQuery数据结构中,并且不是使用.attr(“key”)检索,而是使用.data(“key”)检索.

如果你想设置一个实际的属性,用.attr(“key”,value)来做,然在jQuery编码中,使用.data()通常比自定义属性更好.

您自己唯一一次使用数据前缀的方法是,如果您根据自定义属性的HTML5标准在HTML中添加自定义属性

<div id="myObject" data-numloops="20"></div>

然后,您可以通过以下方式阅读:

var loopCnt = $("#myObject").data("numloops");

查询数据值时,jQuery将首先查看自己的内部存储.如果在那里找不到,它将查找与名称匹配的HTML5数据属性.

大佬总结

以上是大佬教程为你收集整理的jquery通过.data()无法为键分配值全部内容,希望文章能够帮你解决jquery通过.data()无法为键分配值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。