javascript - 如何将 ID 放入 fnSelect() 中?

标签 javascript jquery

我正在使用 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/

相关文章:

javascript - 从具有有效日期作为值的元素中选择属性

Javascript正则表达式如何获取字符串中两个单词之间的所有出现次数

javascript - 如何跳过数组.map 的元素?

javascript - 如何动态更改 DrawerNavigator 的导航选项(标题)?

javascript - 使用 jquery 遍历列表到父项

javascript - json:当单击类别链接时,我只想显示该类别中的帖子

javascript - 用javascript定义一个长字符串

Javascript:嵌套for循环赋值

javascript - 如何将 gridview 内的复选框 id 从 vb.net 传递到 javascript

jquery - 如何对 JQuery Sortable 执行重置