Jquery праверыць, калі клас існуе

У мяне ёсць кіраўнік скрыпт IP з дыяпазонамі і пошук Jquery, каб праверыць, калі 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" > Mike Burkett</td>
                        <td align="center" >RS96</td>
                        <td ></td>
                        <td align="center" >Open Ticket for </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!');
        }
    });

Але гэта не працуе? Хто ёсць якія-небудзь ідэі?

0
дададзена аўтар kojiro, крыніца
Таму ў асноўным праблема # 1 у тым, што ваш код не з'яўляецца сапраўдным. Гэта не дзейнічае HTML3, таму што не было класаў. Гэта не дзейнічае HTML4, так як класы і ідэнтыфікатары не могуць пачынацца з лічбы. Гэта бліжэй за ўсё да сапраўднага HTML5, але да гэтага часу несапраўднае, таму што ў вас ёсць састарэлы Выраўноўванне атрыбут і незачынены Мнемоніка . (Не выкарыстоўвайце аголены Ампэрсанд ў URL.)
дададзена аўтар kojiro, крыніца
$ ( ». 213.5.176.120 ') <=> клас =" 213 5 176 120 "Кропка ў назвах класа варта пазбягаць (або пазбегла ў селектары JQ)
дададзена аўтар biziclop, крыніца
Ваша імя класа з'яўляецца несапраўдным, ён не можа пачынацца з лічбы. CSS класа names"> stackoverflow.com/questions/448981/…
дададзена аўтар Alessandro Vendruscolo, крыніца

4 адказы

Як сказана ў каментарах прапануйце праблема была выкліканая кропкамі ў імёнах класаў, калі вы Have для захоўвання IP-адрасы ў імя класа, то нешта падобнае будзе працаваць -

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

Demo - http://jsfiddle.net/eZCdf/

1
дададзена

мая ўласная памылка адказалі

"$('.213.5.176.120') <=> class="213 5 176 120" Dots in classnames should be avoided (or escaped in the jQ selector) "

0
дададзена

Па-першае, я ўпэўнены, што кропка (.) Не сапраўдныя на імя класа, і нават калі яны ёсць, я б не выкарыстоўваць іх. Гэта <ет> заблытаным . Дарэчы, згодна з спецыфікацыі, клас не можа пачынацца з лічбы.

All CSS syntax is case-insensitive within the ASCII range (i.e., [a-z] and [A-Z] are equivalent), except for parts that are not under the control of CSS. For example, the case-sensitivity of values of the HTML attributes "id" and "class", of font names, and of URIs lies outside the scope of this specification. Note in particular that element names are case-insensitive in HTML, but case-sensitive in XML. In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); they cannot start with a digit, two hyphens, or a hyphen followed by a digit. Identifiers can also contain escaped characters and any ISO 10646 character as a numeric code (see next item). For instance, the identifier "B&W?" may be written as "B\&W\?" or "B\26 W\3F".

Check the CSS Syntax

Па-другое, вы не павінны выкарыстоўваць клас для захоўвання метададзеных, jQuery прадастаўляе зручны спосаб зрабіць гэта, і гэта завецца проста, дадзеныя() .

Трымаеце класы для таго, што яны заслугоўваюць, CSS.

0
дададзена
Перыяды не робяць імёны класаў несапраўднымі, толькі больш цяжка абраць у CSS.
дададзена аўтар kojiro, крыніца
Як я ўжо сказаў, я не ўпэўнены, але калі іх няма, то яны павінны быць, таму што гэта сапраўды збівае з толку.
дададзена аўтар Boris Guéry, крыніца

As everyone else has said, the problem is your class. It's easy to simply replace those dots with underscores and use those in your class name. Here's a quick and dirty example: http://jsfiddle.net/LFfwZ/

0
дададзена