jquery - 修改 jQuery 对象

标签 jquery

我有一个<a>元素。然后我有一个关联的 jQuery 对象 $("a")我想修改它。所以我尝试以下操作:

$("a").myAttribute = 10;
alert($("a").myAttribute);    // <--- Alerts undefined

问题是什么?

最佳答案

每次使用 $('a') 都会返回一个不同的对象实例。虽然您的原始代码不起作用,但您应该能够执行以下操作:

var a = $('a');
a.myAttribute = 10;

alert(a.myAttribute.toString());

如果您确实想将值添加到 DOM 以便稍后使用它,“正确”的方法是使用 attr 方法(如果您设置有效的 HTML 属性)或 data 方法(如果您想使用非标准名称):

// valid HTML attribute
$('a').attr('name', 'someName');

// non-standard name
$('a').data('myAttribute', 10);

然后:

alert($('a').attr('name'));

或者:

alert($('a').data('myAttribute'));

如果您需要更复杂的东西(例如存储复杂的对象而不是简单的属性/数据值),我会考虑编写一个简单的 jQuery 插件,它扩展 jQuery 对象并提供自定义对象所需的存储/检索方法.

要开始一个简单的示例,请查看 jQuery 的插件创作页面:

Plugins/Authoring - jQuery

关于jquery - 修改 jQuery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818205/

相关文章:

php - 使用 jquery.post 单向发送一个帖子

jQuery Mobile 和普通 jQuery

javascript - 事件链接适用于页面刷新但不适用于滚动?

jquery - 如何仅从字符串中获取 HTML 标签

javascript - 在 JQuery 中执行 JavaScript .replace

javascript - 带有两个 st 的事件提交按钮

javascript - Google Maps API - 如何为当前标记设置中心和缩放?

javascript - toggleClass 显示导航问题

jquery - 事件 slider 仅在小分辨率下

jquery - 具有过滤功能的 CSS 网格无法正常工作