Как получить атрибут на основе идентификатора
С помощью jQuery:
var seq = $('#id33192010101533333').attr("seq");
Без jQuery:
vvar seq = document.getElementById("id3319201010151111").getAttribute("seq");
Вы можете попробовать оба из них на эта скрипка .
Обе опции должны работать в любом браузере !
Что вы действительно хотите
Прежде всего, лучше назвать свой пользовательский атрибут data-seq
вместо seq
.Стандарт HTML5 допускает использование пользовательских элементов, но считает их действительными только в том случае, если их имя начинается с data-
.
Кроме того, не рекомендуется помещать обработчики кликов непосредственно в CSS.Лучше использовать свойство class
или какое-либо пользовательское свойство data-action
со значением, например edit
или delete
, а затем присоединить обработчик событий после завершения загрузки страницы.Затем посмотрите на первого предка, у которого есть свойство data-seq
, и получите это свойство.
Поскольку одна демонстрация говорит более тысячи слов, вот демо:
var list = document.querySelectorAll('[data-action="delete"]');
for (var i = 0; i < list.length; ++i) {
list[i].addEventListener("click", function(e){
alert('delete ' + e.target.closest('[data-seq]').getAttribute('data-seq'));
});
}
var list = document.querySelectorAll('[data-action="edit"]');
for (var i = 0; i < list.length; ++i) {
list[i].addEventListener("click", function(e){
alert('edit ' + e.target.closest('[data-seq]').getAttribute('data-seq'));
});
}
table, td {
border : 1px solid #333;
}
td {
padding : 10px;
}
<table>
<tr class="row_header thin_border"></tr>
<tr id="id33192010101533333" data-seq="2">
<td>20101015</td>
<td>600</td>
<td>730</td>
<td><a href="#" data-action="delete">Click</a></td>
<td><a href="#" data-action='edit'>Click</a></td>
</tr>
<tr id="id3319201010151111" data-seq="3">
<td>20101015</td>
<td>600</td>
<td>730</td>
<td><a href="#" data-action="delete"> <img src="https://i.stack.imgur.com/mRsBv.png?s=64&g=1"></a></td>
<td><a href="#" data-action='edit'><img src="https://i.stack.imgur.com/mRsBv.png?s=64&g=1"></a></td>
</tr>
<table>
Или, если вы предпочитаете способ jQuery, вы можете заменить код JavaScript следующим (намного более простым) кодом:
$('[data-action="delete"]').click(function(e){
alert('delete ' + $(this).closest('[data-seq]').data('seq'));
});
$('[data-action="edit"]').click(function(e){
alert('edit ' + $(this).closest('[data-seq]').data('seq'));
});
См. Также эту скрипку и эту скрипку для той же демонстрации на JSFiddle, соответственно без и с jQuery.