Jquery检查类是否存在

时间:2011-10-28 12:11:26

标签: jquery dom

我有一个带有范围和jquery搜索的IP管理脚本来检查是否已经使用了IP,我为每个行添加了该范围的IP的类,如下所示

<tr class="table_176 213.5.176.120 213.5.176.121 213.5.176.122 213.5.176.123 213.5.176.124" id="213.5.176.120-124" style="display:none;">
                        <td class="actualip" align="center" >213.5.176.120-124</td>
                        <td >5</td>
                        <td colspan="2" align="center" ><a href="https://www.racksrv.com/portal/staff/clientssummary.php?userid=637" target="_blank"> Mike Burkett</a></td>
                        <td align="center" ><a href="https://www.racksrv.com/portal/staff/clientshosting.php?userid=637&id=1537">RS96</a></td>
                        <td ></td>
                        <td align="center" ><a href="https://www.racksrv.com/portal/staff/supporttickets.php?action=open&userid=637" target="_blank"><img src="https://www.racksrv.com/portal/staff/images/icons/ticketsopen.png" alt="Open Ticket for " title="Open Ticket for " width="16" height="16"/></a></td>
                    </tr>

并使用以下JQ

$('#search').click(function() {
        $found = false;
        $ip = $('#value').val();
        if ( $("."+$ip).length ){
            alert("found");
        }

        if($found == false) {
            alert('The IP you searched for was not found!');
        }
    });

但这不起作用?有人有任何想法吗?

4 个答案:

答案 0 :(得分:1)

由于评论表明您的问题是由您的班级名称中的点引起的,如果您 将IP地址存储在类名中,那么这样的事情就可以了 -

   var ip = '213.5.176.120'; 
   if ($("tr[class*='" + ip + "']").length){
        alert("found");
    }

演示 - http://jsfiddle.net/eZCdf/

答案 1 :(得分:0)

首先,我很确定点(。)在类名中无效,即使它们是,我也不会使用它们。那是令人困惑的。 顺便说一句,根据规格,课程不能以数字开头。

  

所有CSS语法在ASCII范围内都不区分大小写(即,[a-z]和[A-Z]是等效的),但不受CSS控制的部分除外。例如,HTML属性“id”和“class”,字体名称和URI的值的区分大小写超出了本规范的范围。请特别注意,元素名称在HTML中不区分大小写,但在XML中区分大小写。   在CSS中,标识符(包括选择器中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线( _);它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符“B&amp; W?”可以写成“B \&amp; W \?”或“B \ 26 W \ 3F”。

检查CSS Syntax

其次,你不应该使用class来存储元数据,jQuery提供了一种方便的方法来实现它,它简称为data()

保持课程的内容,CSS。

答案 2 :(得分:0)

正如其他人所说,问题在于你的班级。用下划线简单地替换这些点并使用类名中的那些点很容易。这是一个快速而肮脏的例子:http://jsfiddle.net/LFfwZ/

答案 3 :(得分:0)

我自己的错误已经回答了

“$('。213.5.176.120')&lt; =&gt; class =”213 5 176 120“应避免使用类名中的点(或在jQ选择器中转义)”