我有一个动态生成的HTML文档。
它有一堆包含文本的<p>
标签。我正在尝试在用户单击该特定文本时选择<p>
。不幸的是,我不允许将id添加到可用于选择特定测试块的<p>
标签中。
所以我需要找到一种方法,使用 javascript 或 jQuery 或 angular 将 id 动态添加到<p>
标签中。
我见过一些使用 jQuery.attr("id", "newId")
的解决方案,但它需要一个选择器,我不知道该用什么作为选择器。
谁能提出一些建议?
也许这会有所帮助:
$(function(){
$("p").on("click", function(){
$(this).attr('id', 'value');
});
})
http://plnkr.co/edit/mvKZBopcwuVqAJV7vq7j?p=preview
假设页面上有所有且只有感兴趣的 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++;
} );
如果不查看您的代码,我们就无法真正看到问题,但据我了解,您需要在所有p
标签上都有一个点击事件吗? 您可以将事件绑定到所有p
标签,如下所示: $("p"(.click(function(event({}(;
在函数内部,this
将成为您单击的元素。