Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2015, 20:43
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 03.08.2014
Сообщений: 42

работа с атрибутами
Всем привет,
У меня есть таблица в ней напротив каждой строки чекбокс. При выборе строки(кликом по чекбоксу) мне надо для этой строки получить значение атрибута datum.
<tr class='sales_confirmation_no' datum='<?php echo $value['sales_date'] ?>'>

Вопрос:подскажите,пожалуйс та как мне получить значение атрибута datum из этой строки
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2015, 21:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,199

Если чекбокс где-то внутри tr, то:
$('tr[datum] input[type="checkbox"]').click( function(){
    alert(
        $(this).parents('tr[datum]').attr('datum')
    );
})

Иначе потребно каким либо образом связать конкретный чекбокс с конкретным tr.
__________________
29375, 35

Последний раз редактировалось Aetae, 22.07.2015 в 21:26.
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2015, 21:27
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

А если снаружи
<table style="float: left">
<tr class='sales_confirmation_no' datum="foo">
 <td>foo</td>
 <td>foo</td>
 <td>foo</td>
</tr>
<tr class='sales_confirmation_no' datum="bar">
 <td>foo</td>
 <td>foo</td>
 <td>foo</td>
</tr>
<tr class='sales_confirmation_no' datum="baz">
 <td>foo</td>
 <td>foo</td>
 <td>foo</td>
</tr>
</table>

<input type="checkbox" style="margin-bottom: 10px"><br>
<input type="checkbox" style="margin-bottom: 10px"><br>
<input type="checkbox" style="margin-bottom: 10px"><br>

<script>
 
trs=[].map.call(document.querySelectorAll("tr"), function(x){return x})
;[].forEach.call(document.querySelectorAll("input[type=checkbox]"), function(x, i){
  x.onclick=function(){alert(trs[i].getAttribute("datum"))}
})


</script>
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2015, 21:35
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 03.08.2014
Сообщений: 42

спасибо,работает
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2015, 22:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,274

Сообщение от tysonfury2015
trs=[].map.call
это зачем?
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2015, 22:38
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

Сообщение от рони
это зачем?
Чтобы получить коллекцию в виде массива. Я знаю, там есть какая-то нативная фигня для этого, что-то типа toArray, но я не помню
Ответить с цитированием
  #7 (permalink)  
Старый 22.07.2015, 22:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,274

Сообщение от tysonfury2015
Чтобы получить коллекцию в виде массива.
можно узнать а зачем? зачем нужен массив?
Ответить с цитированием
  #8 (permalink)  
Старый 22.07.2015, 22:51
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

Сообщение от рони
можно узнать а зачем? зачем нужен массив?
Да, он наверное там не нужен, там и так, по ключам все выдернется, ты прав. Во всяком случае, в данном примере. Просто с массивом как-то надежней, хз, что там может выкинуть эта гребаная коллекция.
Ответить с цитированием
  #9 (permalink)  
Старый 22.07.2015, 23:02
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

рони,
Кстати, если говорить не для данного случая, а вообще, тут такая фигня может получится. допустим, ты получил коллекцию, в которой 3 числовых элемента. и потом, вызываешь, collection[5]. у тебя перформанс уйдет в говно, потому что лукап пойдет по всем ключам, и по всем прототипам, об этом тоже забывать не надо. Не знаю, может такие вещи сейчас оптимизируются, но в ручную оно всяко спокойней

Последний раз редактировалось tysonfury2015, 22.07.2015 в 23:08.
Ответить с цитированием
  #10 (permalink)  
Старый 22.07.2015, 23:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,274

tysonfury2015,
про фигню не понял, жаргоном не владею.
querySelectorAll возвращает(псевдомассив) NodeList на момент поиска.
Цитата:
is a non-live NodeList
не живая ,в отличии от
Цитата:
getElementsBy* — живые! При изменении документа — изменяется и результат запроса.
, каким образом эта коллекция может изменится?
https://learn.javascript.ru/searchin...-getelementsby
https://developer.mozilla.org/ru/doc...erySelectorAll
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересная работа для JavaScript-разработчика в Москве от 120 000 linna9 Работа 1 21.01.2014 21:59
Front-end разработчик, работа удаленная или в офисе(Нижний Новгород), фуллтайм. VadimZharko Работа 8 29.04.2013 08:03
работа менеджером georgi Работа 1 29.03.2013 12:18
Javascript фронтенд разработчик(долгосрочная, удаленная работа) cpp Работа 11 16.09.2012 11:04
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 21:06