jQuery.remove()未按预期工作(?)
在阅读http://api.jquery.com/remove/的删除功能的文档后,发现以下代码可行。jQuery.remove()未按预期工作(?)
如果我有一个这样的输入元素:
<input id="hiddenRatings" name="languageRatings" type="hidden" value="{5, 3, 2, , , {5, 3, 4, , , {5, 3, 2}}}"/>
我想我应该能够删除它只是做
$().ready(function() {
$('#hiddenRatings').remove();
});
但什么也没有发生,我输入元素仍然存在。我究竟做错了什么?
编辑:废话......它的确行得通!我使用的是Chrome工具,而且我在“脚本”选项卡而不是“元素”选项卡中查看了DOM。该脚本选项卡当DOM变化明显doesn't更新...
我的猜测是您意思使用这个:
$(document).ready(function() {
$('#hiddenRatings').remove();
});
使用$(document)等待所有HTML元素被加载到DOM中。我不确定是否$()实际上做了任何事情:你的函数将在元素被加载到DOM之前被执行(或者甚至可能根本不被执行,因为我不确定“$()”是否实际工作) 。
希望帮助
从文档:*“从jQuery 1.4开始,调用没有参数的'jQuery()'方法返回一个空的jQuery集合(带有'.length'属性为0)。在之前的jQuery版本中,这将返回一个包含'document'节点。“*,但令人惊讶的是它仍然在1.7中工作,请参阅我的评论。 – 2012-01-18 15:14:03
奇怪...我没有想过如果,但我实际上有$()。ready(function()无处不在,并且所有代码都可以工作(大约100行JS),除此之外 – Daniel 2012-01-18 15:18:21
@Daniel:看到我对你的问题的第二个评论。如果这不起作用,你的问题就在别处。 – 2012-01-18 15:20:21
似乎为我工作:http://jsfiddle.net/9EsSg/,这是奇怪的是诚实的。 '$()'应该返回一个空集。更多信息可以在['jQuery()'文档](http://api.jquery.com/jQuery/)中找到。只需将回调函数传递给'$()',那可能会有效。 – 2012-01-18 15:10:44
关于我的第一条评论,毕竟它并不陌生。 'ready'总是将回调添加到'readyList',而不管选择了哪些元素。 [见源代码](https://github.com/jquery/jquery/blob/1.7.1/src/core.js#L253)。尽管使用'$(document).ready(...)'或'$(...)'仍然是比较常见的。 – 2012-01-18 15:19:44
真正奇怪的是jQuery需要一个实例化的对象来首先添加'DOMContentLoaded'回调 – Esailija 2012-01-18 15:23:37