JQuery это. Следующая проверка

0

Я борюсь с небольшой проблемой, используя jquery this.next функции.

Я хочу проверить, чтобы он выдавал сообщение, такое как пустое поле и т.д.

здесь html:

<div style="float: left; width: 50px;"><input class="network" type="checkbox" name="netW[]" value="PC1" id="PC1" /></div>
    <div style="float: left; width: 350px;"><span>PC1</span><br /><span class="networkRole">
        <div style="margin-left: 10px; color: red;">
            <input class="NRoles" type="checkbox" name="networkRoles[PC1][]" value="CE" />CE</div>
                <div style="margin-left: 20px; color: #000;"><div style="width: 50px; margin-left: 20px;" class="readwrite"><input type="checkbox" name="rw[PC1][CE][]" value="Read" class="checkRW" /><span style=\"margin-left: 10px;\">Read</span></div>
                <div style="width: 50px; margin-left: 20px;" class="readwrite"><input type="checkbox" name="rw[PC1][CE][]" value="Write" class="checkRW" /><span style=\"margin-left: 10px;\">Write</span></div>
                </div>

и здесь jquery, который не работает в данный момент:

(".checkRW").click(function(){
alert ($(this).parent().next().children('.checkRW'));   
});

Я немного потерялся с этими next(). и т.д. Где я ошибаюсь?

Br, Toby

  • 0
    зависит от того, к чему this относится здесь? что я имею в виду, просто добавьте каждый связанный блок кода, this может быть любой div или вход или что-то в вашем HTML, и мы просто не можем догадаться.
  • 0
    Привет, это должен быть этот класс = "сеть"
Показать ещё 2 комментария
Теги:

2 ответа

1
Лучший ответ

Проблема в том, что next() только спускается в нем поиск. Вы можете использовать prev() чтобы оглянуться назад или вверх. Или в вашем случае siblings() будут выглядеть в обоих направлениях.

Вы также можете добавить .val() в конце заявления, так что alert будет иметь некоторый человеческий читаемый текст.

Поэтому вы можете попробовать:

$(this).parent().siblings().children('.checkRW').val()

Чтобы проверить ситуацию, полезно перейти в представление разработчика. Если вы находитесь в Firefox, вы можете посмотреть Firebug, щелкнув правой кнопкой мыши на странице и выбрав Inspect Element with Firebug. Затем перейдите на вкладку " Console ". Введите инструкцию для выбора jQuery в нижней части консоли и нажмите Enter. Это отобразит в консоли то, что он выбирает. В вашем случае this не будет работать в консоли, потому что это будет просто указывать на jQuery(), поэтому вам нужно будет добавить атрибут id в свои поля input и выполнить поиск на основе этих данных. Что-то вроде этого:

$('#1').parent().siblings().children('.checkRW').val()

Вот версия того, что вы предложили, чтобы проверить это.

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <div style="float: left; width: 50px;">
        <input class="network" type="checkbox" name="netW[]" value="PC1" id="PC1" />
    </div>
    <div style="float: left; width: 350px;">
        <span>PC1</span><br />
        <div class="networkRole">
            <div style="margin-left: 10px; color: red;">
                <input class="NRoles" type="checkbox" name="networkRoles[PC1][]" value="CE" />CE
            </div>
            <div style="margin-left: 20px; color: #000;">
                <div style="width: 50px; margin-left: 20px;" class="readwrite">
                    <input id="1" type="checkbox" name="rw[PC1][CE][]" value="Read" class="checkRW" />
                    <span style="""margin-left: 10px;\">Read</span>
                </div>
                <div style="width: 50px; margin-left: 20px;" class="readwrite">
                    <input id="2" type="checkbox" name="rw[PC1][CE][]" value="Write" class="checkRW" />
                    <span style="""margin-left: 10px;\">Write</span>
                </div>
            </div>
        </div>
    </div>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript">
    $( document ).ready( function() {
        $(".checkRW").click(function(){
            alert ($(this).parent().siblings().children('.checkRW').val());   
        });
    });
    </script>
</body>
</html>
0

Если вы пытаетесь перейти ко второму div в этом коде, вам нужен только один parent(), а не два. Второй вызов parent() будет идти на один уровень выше.

  • 0
    Привет, отредактированный вопрос теперь должен быть немного проще, чтобы проверить это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню