2012-08-10 77 views
0

我使用下面的代码更改边框颜色:如何删除<span></span>,然后用jQuery添加另一个<span>?

$("#input_" + type + "_" + row).css("border-color", "black") 

我如何可以先删除任何<span></span>(如果存在的话),其直接跟随我的输入,然后添加以下内容:

<span class="check-ok"></span> 

注即使在第一次输入之后没有跨度,我也需要它工作。

+0

什么是你删除'span'再加入另外一个是回头的目的是什么?仅仅是改变那个'span'的类,而不是它存在与否? – RobB 2012-08-10 14:40:01

+0

我的问题是我不知道如何删除,如果它可能会或可能不会在那里工作。 – Alan2 2012-08-10 14:40:22

+0

@RobB - 问题是,起初不会有跨度。只有在输入验证完成后才会有一段时间。所以一开始就没有什么可以改变的。 – Alan2 2012-08-10 14:41:58

回答

4

只需使用.next[docs]

$("#input_" + type + "_" + row) 
    .next('span').remove().end() 
    .after('<span class="check-ok"></span>'); 

如果没有span.next不会选择任何元素,.remove()将不只是做任何事情。

如果有多个连续span元素和要删除所有的人,你可以使用.nextUntil[docs]

$("#input_" + type + "_" + row) 
    .nextUntil(':not(span)').remove().end() 
    .after('<span class="check-ok"></span>'); 
+0

如果在输入之后没有直接跨度,这个工作还可以吗?我担心,因为我将有一个输入(有或没有跨度),其次是有跨度的其他输入。我不想删除下一个,如果它不是我刚刚验证的输入的一部分。 – Alan2 2012-08-10 14:43:32

+0

'.next'选择以下兄弟**当且仅当**匹配选择器时。如果下一个元素是'input'元素,则'.next('span')'不会选择它。除了阅读文档,这些都是你可以自己尝试的东西。 – 2012-08-10 14:44:42

相关问题