如何使用.each jQuery使用另一个元素

时间:2018-05-29 15:21:09

标签: jquery each

我有一个网页,其中包含标题标记的name属性。我希望能够使用标题的name属性设置每个表的ID。

之前:

<table>
<caption name="director">
...

<table>
<caption name="agent">
...

之后:

<table id="director">
<caption name="director">
...

<table id="agent">
<caption name="agent">
...

到目前为止,我有这个jQuery来获取属性的名称并尝试设置id:

$('caption').each(function() {
    $getNameAttr = $(this).attr('name');
    $('table').attr('id',$getNameAttr);  
});

但是将它设置为表的id不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

可以使用attr(attributeName, function)遍历所有表并从特定于实例的标题元素中提取id

$('table').attr('id', function(){
   return $(this).find('caption').attr('name')
})

答案 1 :(得分:0)

您可以使用closest()函数获取captions标记的第一个父级表格,如下所示:

$('caption').each(function() {
    $getNameAttr = $(this).attr('name');
    $(this).closest('table').attr('id',$getNameAttr);
});

答案 2 :(得分:0)

使用class而不是id,Id在页面中应该是唯一的。

  $('table').attr('id', function(){
       return $(this).find('caption').attr('name')
    })