Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сопоставить проверку дат в input(ах) так, чтобы в условии они были различимы?

Константин Ефименко Гуру (3721), закрыт 4 года назад
Здесь пример того, что я пытаюсь сделать:
http://jsfiddle.net/5s7qgtzh/

Я могу сопоставить 2 input(а), но так как они в таблице, и их может быть много, исходя из этого не получается проверить каждый отдельно.

Сейчас если обновить одно из значений, цикл пройдётся по всем input(ам) и получится следующее:
1) checked="checked" / checked="checked"
2) checked="checked" / checked=""
3) checked="" / checked=""

Это происходит потому, что условие игнорирует значения некоторых вхождений таким образом:
if (dt == 1)
{
//Первое и третье вхождение (строка в таблице) input(ов)
}
if (dt == 2)
{
//Второе вхождение (строка в таблице) input(ов)
}

Честно говоря, я уже не знаю как составить условие, таким образом чтобы можно было проверить каждую строку.

Помогите правильно составить условие. Рабочий пример приветствуется. Объясните как вам удалось этого добиться.
Лучший ответ
danwez Гуру (4600) 4 года назад
Может вместо $('.d-not').each(function(idx, obj) попробовать $(this).find('.d-not').each(function(idx, obj), а то ты все $('.d-not') в таблице берешь в коллекцию
Константин ЕфименкоГуру (3721) 4 года назад
"...а то ты все $('.d-not') в таблице берешь в коллекцию"

Ну во первых, как бы ДА (неужели).
Во вторых, я уже так пробовал, фактически это ничего не меняет (работает точно так же).
В третьих, вы сами то пробовали его?

Если пробовать такой подход, то есть уже готовое, но принципиально неверное решение:
http://jsfiddle.net/q7segf59/

Да, цикл прочекивает как надо. Но когда я пытаюсь использовать его в своём проекте, в том месте где используется этот цикл, всё работает. В другом месте, где используется другой цикл (с др. условием), которое вот только что работало в предыдущем месте, но не используется выше приведённый цикл, браузер начинает закидывать меня бананами и говорить - Uncaught TypeError: Cannot read property 'length' of undefined.
Константин ЕфименкоГуру (3721) 4 года назад
Вот я и отталкиваюсь от того, что цикл должен быть именно таким: $('.d-not').each(function(idx, obj). С другой стороны, как я уже сказал, он принципиально не верный, в том плане, что я на самом деле не знаю какой input первый, а какой второй. Всё что я знаю, что у меня в строке есть 2 input(а) с классом 'd-not', но ведь в одном случае это могут быть data-inp="1" и data-inp="2", во втором случае data-inp="2" и data-inp="3" и т. д.

Ко всему прочему, а что если мне будет необходимо сравнить 4 input(а) в одной строке, так чтобы они были различимы, 1 с 2, 3 с 4, при этом я наверняка не знаю их расположения.

Вот я и не знаю как быть.
Константин ЕфименкоГуру (3721) 4 года назад
В итоге, я пришёл к варианту, показанном в примере:
http://jsfiddle.net/q7segf59/

Как оказалось, проблема заключалась в области видимости. Скрипт ссылался на контент, которого физически не существует, поэтому и возникала ошибка.

Благодаря этой ошибки, я пришёл к выводу, что проще написать функцию и прогонять через одно и тоже условие разные селекторы, в зависимости от нужного контента.
Остальные ответы
Орлов Мудрец (12533) 4 года назад
Неправильно задаёшь вопрос..
Похожие вопросы