работа с атрибутами
Всем привет,
У меня есть таблица в ней напротив каждой строки чекбокс. При выборе строки(кликом по чекбоксу) мне надо для этой строки получить значение атрибута datum. <tr class='sales_confirmation_no' datum='<?php echo $value['sales_date'] ?>'> Вопрос:подскажите,пожалуйс та как мне получить значение атрибута datum из этой строки |
Если чекбокс где-то внутри tr, то:
$('tr[datum] input[type="checkbox"]').click( function(){ alert( $(this).parents('tr[datum]').attr('datum') ); }) Иначе потребно каким либо образом связать конкретный чекбокс с конкретным tr. |
А если снаружи
<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> |
спасибо,работает
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
рони,
Кстати, если говорить не для данного случая, а вообще, тут такая фигня может получится. допустим, ты получил коллекцию, в которой 3 числовых элемента. и потом, вызываешь, collection[5]. у тебя перформанс уйдет в говно, потому что лукап пойдет по всем ключам, и по всем прототипам, об этом тоже забывать не надо. Не знаю, может такие вещи сейчас оптимизируются, но в ручную оно всяко спокойней:) |
tysonfury2015,
про фигню не понял, жаргоном не владею. querySelectorAll возвращает(псевдомассив) NodeList на момент поиска. Цитата:
Цитата:
https://learn.javascript.ru/searchin...-getelementsby https://developer.mozilla.org/ru/doc...erySelectorAll |
Часовой пояс GMT +3, время: 12:57. |