jquery - 选择唯一ID

时间:2014-01-31 21:53:56

标签: javascript jquery html

我是jquery的新手

我用php生成了html div并给每个人一个唯一的id

<div id=div1>text</div>
<div id=div2>text</div>
<div id=div3>text</div>
...

问题是,我如何用jquery选择特定的div?通常我使用此代码来选择元素

$('#id')

但我必须制作很多选择器,因为每个id都是唯一的。最近我使用了这样的东西

<div ... onclick=getElem(id)></div>

function getElem(id){
     var elem=$('#div'+id);
} 

使用onclick是否合适?

3 个答案:

答案 0 :(得分:2)

将一个类添加到div组

<div id="div1" class="someClass">text</div>
<div id="div2" class="someClass">text</div>
<div id="div3" class="someClass">text</div>
...

然后在javascript:

$('.someClass').click( function(event) {
    var ele = $(this);
    // ele is the element you clicked on
});

答案 1 :(得分:0)

我不知道你的真实用例是什么,但你不应该需要ID。提供您想要处理类的点击次数的所有元素:

<div class="some-group"></div>
<div class="some-group"></div>
<div class="some-group"></div>

然后只需关注群组点击次数:

$('.some-group').click(function(){
// do something with $(this).attr('id');
});

答案 2 :(得分:0)

向div元素添加一个类:

<div id="div1" class="myDivClass">text</div>
<div id="div2" class="myDivClass">text</div>
<div id="div3" class="myDivClass">text</div>

然后,如果您需要分别对每个项目进行操作,则可以迭代每个元素

$('.myDivClass').each(function(){
   // Process each item found that use the myDivClass 
   $(this).text("set a new text");
});

或者您可以一次操作所有元素

$('.myDivClass').text("set text on all elements");

这意味着您可以使用以下命令设置单击回调:

$('.myDivClass').click(function(){
  // Your click handler for ALL elements with myDivClass

});

或单独在每个项目上,允许包含一些额外的处理

$('.myDivClass').each(function(){
   // Here u could do some checks
   var id = $(this).attr('id'); // or $(this).prop('id') // depends on jquery version

   if(id !== "div1"){
      $(this).click(function(){
        // Click handler for each item
      });
   }
});