在jQuery中使用全局变量删除s​​pan

时间:2011-10-18 14:59:01

标签: javascript jquery

我用这样的全局变量创建一个span:

var $span = jQuery('<span></span');
jQuery($span).append('<img src="myimage.gif"/>'); 
jQuery($span).insertAfter('#username');

它可以工作但我想删除代码的某些部分的跨度。 我试着用:

$span.remove();

但它不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

那是因为$ span还没有存在于DOM中,因此无法将其删除。

如果你这样做:

var $span = jQuery('<span></span'); // missing >

jQuery('body').append($span);

$span.remove();

这会将它添加到DOM中,然后再将其删除。

正如Richard D所指出的那样,您在结束范围标记上错过了>

答案 1 :(得分:0)

真的需要发布这样的问题的完整代码。如果他们无法在上下文中看到你正在做的事情,那么人们就很难帮助你。

也就是说,如果$span.remove()没有删除<span>,那么简单明了$span就没有引用您的想法。要么它是另一个元素,要么它是未定义的。

你在哪里把它变成一个“全球”变量(顺便说一句坏主意)?在javascript中确实没有真正的全局变量这样的东西 - 它们只针对它们所处的上下文定义。如果直接上下文是你的文档(即<script>var myVar = 'foo';</script>),那就是所有意图和目的是一个“全局”变量,但其他任何东西都是“本地”变量。

基本上,使用console.log或类似内容在您尝试使用它的地方内省$span的值。如果它是未定义的(我最好的猜测是它),那么找出为什么它没有在你工作的上下文中定义。