JQuery проверить, существует ли класс - PullRequest
0 голосов
/ 28 октября 2011

У меня есть сценарий управления 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" ><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 ]

1 голос
/ 28 октября 2011

Поскольку комментарии показывают, что ваша проблема вызвана точками в именах классов, если у вас есть для хранения IP-адресов в имени класса, то что-то подобное будет работать -

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

Демо - http://jsfiddle.net/eZCdf/

0 голосов
/ 06 ноября 2011

На мою ошибку ответил

"$ ('. 213.5.176.120') <=> class =" 213 5 176 120 "Точки в именах классов следует избегать (или избегать их в селекторе jQ)"

0 голосов
/ 28 октября 2011

Как все уже говорили, проблема в вашем классе. Легко просто заменить эти точки подчеркиванием и использовать их в названии вашего класса. Вот быстрый и грязный пример: http://jsfiddle.net/LFfwZ/

0 голосов
/ 28 октября 2011

Во-первых, я почти уверен, что точка (.) Недопустима в имени класса, и даже если бы они были, я бы их не использовал. Это сбивает с толку . Кстати, согласно спецификации, класс не мог начинаться с цифры.

Весь синтаксис CSS нечувствителен к регистру в пределах диапазона ASCII (то есть, [a-z] и [A-Z] эквивалентны), за исключением частей, которые не контролируются CSS. Например, чувствительность к регистру значений атрибутов HTML «id» и «class», имен шрифтов и URI выходит за рамки данной спецификации. В частности, обратите внимание, что имена элементов не чувствительны к регистру в HTML, но чувствительны к регистру в XML. В CSS идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [a-zA-Z0-9] и символы ISO 10646 U + 00A0 и выше, плюс дефис (-) и символ подчеркивания ( _); они не могут начинаться с цифры, двух дефисов или дефиса, за которым следует цифра. Идентификаторы также могут содержать экранированные символы и любые символы ISO 10646 в виде числового кода (см. Следующий пункт). Например, идентификатор "B & W?" может быть написано как "B \ & W \?" или "B \ 26 W \ 3F".

Проверьте синтаксис CSS

Во-вторых, вы не должны использовать класс для хранения метаданных, jQuery предоставляет удобный метод для этого, и его просто называют data().

Сохраняйте классы для того, чего они заслуживают, CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...