работа с атрибутами
Всем привет,
У меня есть таблица в ней напротив каждой строки чекбокс. При выборе строки(кликом по чекбоксу) мне надо для этой строки получить значение атрибута 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, время: 13:06. |