我想在最近的pre
标记li
标记中为pre
标记添加ID:
所以这就是我现在所拥有的:
<li id="12345">
<pre class="code">
<!-- some code goes here -->
</pre>
</li>
它应该成为这个:
<li id="12345">
<pre class="code" id="12345">
<!-- some code goes here -->
</pre>
</li>
答案 0 :(得分:1)
具有data-id而非id:
的解决方案$('pre').each(function(){
$(this).attr('data-id', $(this).closest('li').attr('id'));
});
答案 1 :(得分:0)
元素id在dom中应该是唯一的。尝试附加一些字符串,使它像这样独特:
$(document).ready(function(){
$('li').find('pre').attr('id', function(d){ return $(this).parent().attr('id')+'_pre'; });
});
答案 2 :(得分:0)
您可以尝试这样的事情:
(function() {
var test = document.getElementById("test");
var pre = test.getElementsByTagName("pre")[0];
pre.id = "pre_" + test.id;
console.log(pre)
})()
<div id="test">
<ul>
<li>
<pre>Test Pre</pre>
</li>
</ul>
</div>
答案 3 :(得分:0)
试试这个:
$(document).ready(function(){
$('li').each(function(i)
{
var id = $(this).attr('id');
$(this).find('pre').data('id',id);//for data-id
$(this).find('pre').attr('id',id);//for id
});
});
答案 4 :(得分:0)
首先,id是唯一键,不能重复。 你最好添加Class not id。
但是,要回答您的问题,请尝试以下代码。
var x = document.getElementsByTagName('pre');
var y = x.parent;
x.setAttribute("id", y.id);