【问题标题】:Add id's to <p> using JavaScript or jQuery or Angular使用 JavaScript 或 jQuery 或 Angular 将 id 添加到 <p>
【发布时间】:2020-05-03 07:17:30
【问题描述】:

我有一个动态生成的 HTML 文档。

它有一堆&lt;p&gt; 标签,里面有文字。当用户单击该特定文本时,我正在尝试选择 &lt;p&gt;。不幸的是,我不能将 ids 添加到 &lt;p&gt; 标记中,我可以使用这些标记来选择测试的特定块。

所以我需要找到一种方法来使用 javascript 或 jQuery 或 angular 将 id 动态添加到 &lt;p&gt; 标签。

我见过一些使用 jQuery .attr("id", "newId") 的解决方案,但它需要一个选择器,我不知道该用什么作为选择器。

谁能给点建议?

【问题讨论】:

  • 显示你的代码,到目前为止你做了什么?
  • 我的意思是

    标签

  • 我试过 $(document).on("click", (event) => {$('select').attr("id", "newId");}
  • 你想通过添加ids达到什么目的?
  • 我们需要看看你的代码是如何生成 HTML 的。

标签: javascript jquery html angular


【解决方案1】:

也许这会有所帮助:

$(function(){
  $("p").on("click", function(){
    $(this).attr('id', 'value');
  });
})

http://plnkr.co/edit/mvKZBopcwuVqAJV7vq7j?p=preview

【讨论】:

    【解决方案2】:

    假设页面上只有所有感兴趣的 p 元素,试试这个:

    jQuery( 'p' ).on( 'click', function() {
      jQuery( this ).attr( 'id', 'yourID' );
    } );
    

    当然,您需要一些代码来管理渐进式 ID,因为它们需要在页面上是唯一的。

    更具体地说,举一个制作渐进式 id 的例子,假设你所有的 p 元素都在一个容器中:

    <div id="target_paragraphs">
      <p>...some text 1..</p>
      <p>...some text 2..</p>
      <p>...some text 3..</p>
      <p>...some text 4..</p>
      ...
      <p>...some text n..</p>
    </div>
    

    你可以使用这个脚本:

    count = 0;
    
    jQuery( '#target_paragraphs p' ).on( 'click', function() {
      jQuery( this ).attr( 'id', 'paragaraph_ID_' + count );
      count++;
    } );
    

    【讨论】:

      【解决方案3】:

      如果不查看您的代码,我们真的看不出问题,但据我了解,您需要在所有 p 标记上单击事件? 您可以将事件绑定到所有p 标签,如下所示: $("p").click(函数(事件){});

      在函数内部,this 将成为您点击的元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-16
        • 2012-06-12
        • 2018-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 1970-01-01
        相关资源
        最近更新 更多