2012-06-27 23 views
0

我想设置一个条件,如果SPAN的内容与“total-items”CLASS = 12,然后弹出警报。使用jQuery SPAN内容的条件

这里是我的HTML代码:

<span class="total-items">12</span>​ 

这里是我的jQuery代码:

if($('.total-items').html == 12){ 
    alert("Test"); 
} ​​ 

我想,也许我应该使用parseInt功能?不知道如何。任何帮助,将不胜感激。

+1

我想你想要做'if($('。total-items')。text()=== 12)' – MilkyWayJoe

+1

这绝对不行。 '==='需要一个数字,'.text()'永远不会返回一个数字。 – Rudie

+0

请原谅我..忘记单引号 – MilkyWayJoe

回答

3
if ($('.total-items').text() === '12') 

如果SPAN的内容可能包含开头或结尾的空白,你就必须比较它与期望的值之前摆脱它:

if ($.trim($('.total-items').text()) === '12') 

而且,请考虑缓存对该SPAN的引用,以便您不必重复查询。 (如果你需要做的是检查不止一次做到这一点。)

var $totalItems = $('.total-items'); 

然后

if ($totalItems.text() === '12') 
+0

这将工作,但['.text()'](http://api.jquery.com/text/)将是最适合这种类型的比较。 (如果这个'span'中有子元素呢?) – MilkyWayJoe

+0

@MilkyWayJoe是的,'text()'更合适。 –

+1

如果它完全匹配,它并不重要。但如果考虑到''这样的东西,那么'.text()'最有可能是更好的选择。 –

1

做这样的:

if(+$('.total-items').text() === 12){ 
    alert("Test"); 
} 

这将创建一个弹出时文本是12.

+0

我只想指出['text()'](http://api.jquery.com/text/)是一个get方法,因此您必须将其称为打开和关闭括号。而一个诚实的问题:那是什么加号? – MilkyWayJoe

+1

@MilkyWayJoe - 哎呀,忘了'()'。 '+'会将所有内容都变成“数字”。如果它不是数字,它会返回'NaN'。 –

+0

很酷,不知道。谢谢 – MilkyWayJoe

1

我打算建议不要从span的tex解析12那样。你这样做的方式看起来好像你将在页面上显示数字十二。依靠像这样的演示文稿中的数据是一个坏主意。如果您决定要将跨度的内容设置为Total items: 12,该怎么办?你很难解析12,或者你必须引入一个新的元素。

这是我提议:

<span id="total-items" data-count="12">12</span> 

和:

if ($('#total-items').data('count') === '12') { 
    // do whatever 
} 

另外注意,我改变total-itemsclassid。这提醒你,应该只有一个元素,你从这些数据中获取。

+0

这是一个伟大的观点,它解决了几乎所有可能的问题与当前答案 – MilkyWayJoe

+0

@MilkyWayJoe谢谢。我很好奇,看看OP是否在意这些担忧或不... – lbstr

+0

但是OP *会*在页面上显示该号码。 (至少,他没有暗示他不想显示它。)如果数字应该显示在页面上,那么另外将它放入数据属性是多余的。看来,OP使用该SPAN专门存储一个数字值,如下所示:'Total Items:',这意味着他可以依靠它只包含数字值。 –