selector. Выбор элементов массива.
Господа! Помогите начинающему.
Есть разобранный массив: <? foreach ($summ as $itm): ?> ... <div id="blabla" class= <?if ($itm['transpStatus']==0):?> "styled-select-no"><?endif;?> <?if ($itm['transpStatus']==1):?> "styled-select-yes"><?endif;?> ... <?endforeach;?> .. и сам скрипт: <script> $(document).ready(function () { $('.select-id').change(function () { $.post("/index.php?component=org§ion=ajax", {event: "payForDelivery", id_zp:<?=$_GET['value']?>, rel: rel}, function(payForDeliveryResult){ $("#blabla").removeClass("styled-select-no"); }); }) }) </script> Я ожидаю удаление классов во всех элементах, а удаляется только в первой итерации! Что я сделал не так? На соседней странице по такому же сценарию всё работает... |
Цитата:
Цитата:
|
Обращаться по классу а не по ID
|
nGreg,
для однотипных элементов используют класс в нормальном случае, или костыль [селектор по атрибуту] если очень хочется с id |
$(".styled-select-no").removeClass("styled-select-no"); прямо таки выстрел в самого себя! |
Цитата:
Однако дальше должно быть вот так: $("#blabla" + rel).removeClass("styled-select-no"); а rel - это уникальный номер! Но эта конструкция нифига не делает. Повторюсь, так работает на странице рядом... |
Так что, самоубиться не получится:no: . Мне нужно убить класс в конкретной итерации. В догонку хочу сказать, что хоть и не программист не разу, но пользуюсь отладчиками и в PHP, и в JS. Они ошибок не выдают и все необходимые данные есть. С JS синтаксисом у меня проблемы...
|
$('[id="blabla'+rel+']').removeClass("styled-select-no"); |
j0hnik,
:-? |
рони,:yes:
|
Цитата:
Uncaught SyntaxError: missing ) after argument list |
$('[id="blabla'+rel+'"]').removeClass("styled-select-no"); скобку забыл |
Цитата:
|
Ничего не понимаю! Ошибок нет и ничего не происходит...
|
Цитата:
|
console.log(rel);поставьте рядом и посмотрите что там |
Так ведь уже попробовал....
Теперь попробую в двух словах объяснить, чего мне нужно: Есть выведенный массив на экран. У каждой итерации есть уникальный номер. Мне нужно, чтобы при нажатии на кнопку (которая есть в каждой строчке) производилась очистка класса в конкретной строке. По этому самому номеру... |
а уникальный номер и выводит... То же, что я вижу в дебаггере...
|
nGreg,
а нельзя этот rel в html добавить? |
Вот тут я вас не совсем понял. Этот rel берётся из конструкции
php foreach ... В каждой строке они разные. И в отладчике js в хроме я вижу эти номера. Те, к которым я обращаюсь... Те же, что мне показывает отладчик php storm-a... |
Попробуйте выполнить такой код и посмотрите, что будет вы ведено в консоль браузера.
$('[id="blabla'+rel+'"]').removeClass("styled-select-no"); console.log( rel, $('[id="blabla'+rel+'"]').get(0) ); |
7801 undefined!
7801 - номер записи в БД (тот самый rel) Именно тот, на который я тыкнул. Мне именно и нужно, чтобы было defined... |
А вот если так написать:
console.log($('[id="blabla'+rel+'"]')) то получается: init [prevObject: init(1), context: document, selector: "[id="blabla7108"]"] |
nGreg,
у вас один rel для всех #blabla ??? |
Когда появляется этот rel? по событию какому то?
|
Цитата:
|
вот в колбеке и вешайте обработчик ваш. заранее этого делать нельзя
|
Цитата:
|
nGreg,
измените id !!! сделайте id="blabla7108" в html, незнаю как это на php <div id="blabla"+rel class= <?if ($itm['transpStatus']==0):?> "styled-select-no"><?endif;?> <?if ($itm['transpStatus']==1):?> "styled-select-yes"><?endif;?> |
Цитата:
В другой стоке естественно другая цифра... |
Я почему спрашиваю именно на форуме JS? Именно такая конструкция работает на другой странице у меня на сайте.. А тут я чего-то не так идёт... С php всё в полном порядке...
|
Цитата:
|
https://yadi.sk/i/21SBeXdF3TUUWF
Только в теперь не "rel", а "rowNum". Ну и цифры другие, потому что с другой страницы взяты... |
https://jquery-docs.ru/jQuery.ajax/ про колбеки почитайте.
вам нужно ваш обработчик события change добавлять колбеком. потому что до выполнения аякс запроса, в атрибут id еще не приписан ваш rel. |
Часовой пояс GMT +3, время: 05:54. |