我是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
是否合适?
答案 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
});
}
});