jQuery removeAttribute()不工作
我一直在拼命寻找这个问题的答案,但什么也没找到。 我目前正在改进我正在创建的网站上的代码,从、、自定义“”属性切换到HTML5数据yyy属性。现在我的问题来了jQuery removeAttribute()不工作,jquery,html,custom-data-attribute,Jquery,Html,Custom Data Attribute,我一直在拼命寻找这个问题的答案,但什么也没找到。 我目前正在改进我正在创建的网站上的代码,从、、自定义“”属性切换到HTML5数据yyy属性。现在我的问题来了 $("#test ul li").click(function(event){ $(this).toggleClass("selected"); if($(this).hasClass("selected")){ if(jQuery.trim($("#input_value").v
$("#test ul li").click(function(event){
$(this).toggleClass("selected");
if($(this).hasClass("selected")){
if(jQuery.trim($("#input_value").val())){
$(this).data("special",{"value":jQuery.trim($("#input_value").val())});
}
}
else{
$(this).removeAttr("data-special");
}
});
单击某个li元素时将触发以下代码。一个类被切换,在切换之后(这是一个单词吗?),脚本检查这个元素是否有被切换的类。如果它没有类(这就是问题所在),脚本应该删除属性“data special”,删除数据。这根本不会发生
如果添加
$("#test ul li").removeAttr("data-special");
在功能之外,一切正常,工作正常。有什么想法吗?您已经将
数据特殊值导入了.data()
,所以请使用
将属性值导入.data()
后,需要在那里使用它。删除属性不会删除.data()
如果需要同时删除它们,则需要同时调用这两个方法,或者根本不使用.data()
。您已经将数据特殊值导入.data()
中,因此请使用
将属性值导入.data()
后,需要在那里使用它。删除属性不会删除.data()
如果需要同时删除它们,则需要同时调用这两个方法,或者根本不使用.data()
。这不是一个属性
$(this.data(“special”,{“value”:jQuery.trim($(“#input_value”).val())})
您正在将其存储在jquery缓存中。因此,如果您想删除它,您必须按照另一张海报上的指示操作,并使用removeData功能删除它 这不是一个属性
$(this.data(“special”,{“value”:jQuery.trim($(“#input_value”).val())})
您正在将其存储在jquery缓存中。因此,如果您想删除它,您必须按照另一张海报上的指示操作,并使用removeData功能删除它 谢谢大家!!有趣的是,这就是我开始做的,我的代码中一定有一个bug,因为它似乎不起作用,当它不起作用时,我在谷歌上搜索答案并发现了这个问题:我理解(或误解)这是将数据yyy视为删除时的一个属性。还有一件事,、或者干脆不在第一个位置使用.data()。我是否应该不使用.data()?你不喜欢吗?@BenediktÓmarsson:不客气。关于使用.data()
,如果您需要存储复杂的数据,它会很有用。例如,您似乎正在存储一个对象{value:“特殊值”}
如果您实际上需要添加和删除属性的对象,那么.data()
可能会很有用。但是,如果您所做的只是读取一个数据-
属性的值,那么我可能只会使用.attr()
,因为它更快一点,并且不会向jQuery.cache
添加任何额外内容。我理解。我正在编写的、、应用程序有点复杂(至少对我来说,这是一个新业务)。我使用user.attr()和自定义属性,比如somevalue。但是,当使用w3c工具验证我的代码时,它总是抱怨这些属性,因为它们不存在“”。在那之后,我得到的印象是,添加自定义属性虽然可能,但却是一种肮脏的交易。这不是真的吗?提前感谢您的帮助和评论。谢谢!有趣的是,这就是我开始做的,我的代码中一定有一个bug,因为它似乎不起作用,当它不起作用时,我在谷歌上搜索答案并发现了这个问题:我理解(或误解)这是将数据yyy视为删除时的一个属性。还有一件事,、或者干脆不在第一个位置使用.data()。我是否应该不使用.data()?你不喜欢吗?@BenediktÓmarsson:不客气。关于使用.data()
,如果您需要存储复杂的数据,它会很有用。例如,您似乎正在存储一个对象{value:“特殊值”}
如果您实际上需要添加和删除属性的对象,那么.data()
可能会很有用。但是,如果您所做的只是读取一个数据-
属性的值,那么我可能只会使用.attr()
,因为它更快一点,并且不会向jQuery.cache
添加任何额外内容。我理解。我正在编写的、、应用程序有点复杂(至少对我来说,这是一个新业务)。我使用user.attr()和自定义属性,比如somevalue。但是,当使用w3c工具验证我的代码时,它总是抱怨这些属性,因为它们不存在“”。在那之后,我得到的印象是,添加自定义属性虽然可能,但却是一种肮脏的交易。这不是真的吗?提前感谢您的帮助和意见。
$(this).removeData("special");