如何创建空 jQuery 数据项


$("selector").data("name", null);
console.log($("selector").data("name"));

这将打印undefined .

无论如何,是否可以在元素的jQuery数据对象中实例化null项,而不是未定义的项?

是的

,你的代码工作正常,你应该检查你的$("selector")是否存在

你的代码运行良好 正如 Krysiak 所说@Sebastian,检查选择器是否存在。请参阅下面的工作片段:

console.log("before: " + $(".selector").data("name"));
$(".selector").data("name", null);
console.log("after: " + $(".selector").data("name"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='selector' data-name='test'></div>

一个示例来演示如果选择器不存在会发生什么,就像在您的情况下一样,它返回undefined(也许您应该说选择器的类型是什么,例如 class - .selectorid - #selector ):

console.log("before: " + $("selector").data("name"));
$("selector").data("name", null);
console.log("after: " + $("selector").data("name"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='selector' data-name='test'></div>

$("#selector").data("name", null);
console.log($("#selector").data("name"));

按原样工作正常,您的选择器可能不存在。

这是一个小提琴 https://jsfiddle.net/eo32jjay/

这个呢?

$(document).ready(function() {
    var aVariableValue = null;
    $("#myDiv").data("name", aVariableValue);
    console.log($("#myDiv").data("name"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="myDiv"></div>

看起来您的方法应该有效,但您选择的元素必须存在。

看看这个小提琴,看看它的实际效果。

// Before
alert($('#elem').data('foo'));
$('#elem').data('foo', null);
// After
alert($('#elem').data('foo'));

最新更新