【问题标题】:Set attribute on <a>, not <li>在 <a> 上设置属性,而不是 <li>
【发布时间】:2015-10-10 23:01:06
【问题描述】:

我有

lnk = $("<a>" + appendopts.text + "</a>")
                .attr('href', this.opts.link_to.replace(/__id__/,page_id));

我需要

<li><a href=""></a></li>

我试过了

lnk = $("<li><a>" + appendopts.text + "</a></li>")
                .attr('href', this.opts.link_to.replace(/__id__/,page_id));

我得到了错误的输出。我需要做什么?如何将attr 添加到a 元素而不是li 元素?

【问题讨论】:

    标签: jquery attr


    【解决方案1】:

    attr()(和其他方法)将始终应用于选择器中的最外层元素。

    您需要单独处理它们:

    var a = $("<a>" + appendopts.text + "</a>").
      attr('href', this.opts.link_to.replace(/__id__/,page_id));
    
    lnk = $('<li>').
      append(a);
    

    【讨论】:

    • 此解决方案适用于 OP,但仍为 -1 票。我不明白人们如何在不验证所提供的解决方案的情况下投反对票。
    【解决方案2】:

    试试这个:先创建锚标记,然后将其附加到li

    var lnk = $("<a>" + appendopts.text + "</a>")
                    .attr('href', this.opts.link_to.replace(/__id__/,page_id));
    
    var li = $('<li></li>').append(lnk);
    

    【讨论】:

      【解决方案3】:
      var listItem = $("<li><a href='" + this.opts.link_to.replace(/__id__/,page_id) + "'>" + appendopts.text + "</a></li>");
      

      其他两个答案都很好,只是觉得值得发布一个替代方案。

      基本上,只是一个大的串联字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-12
        • 1970-01-01
        • 1970-01-01
        • 2018-03-25
        • 1970-01-01
        • 2022-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多