jQuery $.data() 条件语句

发布于 2024-11-04 02:29:52 字数 178 浏览 4 评论 0原文

我在元素上使用 html5“data”属性,并且仅当变量存在且不为空时,我才想将属性值分配给变量:

var xxx = $(this).data('what ')? $(this).data('what') : 'default_value';

但它不起作用。我总是得到默认值...

I'm using the html5 "data" attribute on a element, and I want to assign the attribute value to a variable only if it exists and if it's not empty:

var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';

but it doesn't work. I always get the default value...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦旅人picnic 2024-11-11 02:29:52

使用短路更简单、更高效:

var xxx = $(this).data('what') || 'default_value';

但是假设数据存在,您的代码无论如何都应该可以工作(正如评论者指出的那样)。

Using a short circuit is simpler and more efficient:

var xxx = $(this).data('what') || 'default_value';

But your code should have worked anyway, assuming the data existed (as the commenter noted).

你没皮卡萌 2024-11-11 02:29:52

看起来 $(this) 不是您期望的那样。除此之外,该声明看起来不错。 演示

Looks like $(this) is not what you expect it to be. Other than that, the statement looks fine. Demo

你如我软肋 2024-11-11 02:29:52

根据文档:

.data()

.data() 方法允许我们附加
任何类型的数据到 DOM 元素
避免循环的安全方式
参考文献,因此凭记忆
泄漏。

.attr()

.attr()方法获取属性
仅第一个元素的值
匹配的集合。

所以你想要的是使用 .attr() 方法,如下所示:

var xxx = $(this).attr('data-what') || 'default_value';

According to the documentation:

.data()

The .data() method allows us to attach
data of any type to DOM elements in a
way that is safe from circular
references and therefore from memory
leaks.

.attr()

The .attr() method gets the attribute
value for only the first element in
the matched set.

So what you want is to use the .attr() method, like this:

var xxx = $(this).attr('data-what') || 'default_value';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文