2012-03-11 75 views
1

我试图检查自动生成的跨度class=""内容,我将用它作为条件来确定我是否会显示一条消息给用户,或者不是检查自动生成的跨度类标签使用jQuery

这里跨度

<span id="sprytextfield1" class="textfieldInvalidFormatState"> 

什么我想在这里把一个Div称为emailid这样我就可以使用下面的

if ($('email').html('<span id="sprytextfield1" class="textfieldInvalidFormatState">')) 
{ 

alert ("error"); 
} 

但这不起作用,因为如果把跨度放在我的div email这将停止JavaScript并导致错误,因为对于某些数据条件,我无法在跨度结束时关闭div。

是否有任何方法来获得跨度class没有把所有的跨度内的div?

回答

2

检查:http://jsfiddle.net/pratik136/YY5RR/

这将让你获得类的所有跨越的。

+0

谢谢,它似乎是我需要但我不明白的脚本,我很抱歉,仍然是新的JQuery和一般编程,你能解释一下代码吗?以及我只想将'class'变成变量? – 2012-03-11 22:16:54

+0

好吧,我明白了:) – 2012-03-11 22:18:51

+0

太棒了!如果您需要更多信息,只需发表评论即可。 – bPratik 2012-03-11 22:19:50

1

如果你想跨度附加到DIV,仍然可以得到一个参考吧(这样你就可以进一步修改),我会建议做这样的:

$("#email").html(""); // optional: clear email 
var mySpan = $('<span id="sprytextfield1" class="textfieldInvalidFormatState"/>').appendTo($('#email')); 

然后你就可以添加更多东西跨度,如文本或其他元素:

mySpan.text("some text"); 
mySpan.append('<a>some link</a>'); 

你提到的跨度后,您不能关闭格,我明白,你想更多的元素添加到它,是正确的?只是追加(或前置)他们,创造了跨度后:

$("#email").append(someElement); // Will appear in the end, after the span 
$("#email").prepend(someElement); // Will appear in the beginning, before the span 

更新:重读你的问题,这不是我清楚你要检查什么。跨度是否已经在你的文档中,你只是想看看它是否有一个特定的类(你已经知道)?如果是这样的情况下,获得元素(你有它的ID),并在其上使用hasClass

if ($("#sprytextfield1").hasClass("textfieldInvalidFormatState")) { 
    alert("error"); 
} 
+0

谢谢,我会尝试一下,并回复 – 2012-03-11 22:13:48

+0

感谢您的帮助和您的时间:) – 2012-03-11 22:41:57