我正在使用 anchor 来捕获 pre 标记内的代码。 我的 HTML 结构是这样的:
<a href="javascript:fnSelect('id123');>[Select Code]</a>
<pre class="CodeBlock linenums" id="id123"><!-- code --> </pre>
为了将 id 添加到预标记和 anchor ,我使用以下代码:
$('pre').each(function(){
var id;
if ($(this).attr('id') == undefined){
id = 'id'+Math.floor((Math.random() * 99999999) + 1);
$(this).attr('id',id);
$(this).prev('a').attr('id',id);
}
});
这会为预标记和 anchor 创建相同的 id。但问题是,它生成了这样的 HTML:
<a href="javascript:fnSelect('id');" id="id38554807">[Select Code]</a>
<pre class="CodeBlock linenums" id="id38554807">
应该是这样的:
<a href="javascript:fnSelect('id38554807');>[Select Code]</a>
我怎样才能实现这个目标?
最佳答案
您只是设置 id,而不是更新 href 属性
$('pre').each(function(){
var id;
if ($(this).attr('id') == undefined){
id = 'id'+Math.floor((Math.random() * 99999999) + 1);
$(this).attr('id',id);
$(this).prev('a').attr('href',"javascript:fnSelect('" + id + "')");
}
});
或者最好将 pre 元素本身传递给 fnSelect 方法:
$('pre').each(function() {
$(this).prev('a').on('click', function(ev) {
ev.preventDefault();
fnSelect(this);
});
});
关于javascript - 如何将 ID 放入 fnSelect() 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344064/