$("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
- .selector
或id
- #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'));