1

具体..代码

$("#ht_1").click(function () {
    alert("hello");
});

$("#ht_2").click(function () {
    alert("hello");
});

// what i tried
for (i = 1; i <= 2; i++) {
    $("#ht_" + i).click(function () {
        alert("hello");
    });
}

这段代码有什么问题,有什么替代方法吗?

编辑:对不起

4

5 回答 5

4

您的代码打算这ht_1, ht_2是一个标签,但它似乎是 id,您可以使用属性选择器,以.

现场演示

句法: jQuery( "[attribute^='value']" )

$('*[id^="ht_"]').click(function(){
    alert("hello");
});

您可以在此 jQuery api链接上找到不同的有用选择器,例如包含、结尾、统计信息、相等等。

于 2013-07-19T09:40:30.247 回答
3

您可以为所有想要点击功能的元素分配一个类。

例子:

/** CSS fragment **/
$(".htClass").click(function(){
    alert("hello");
});


<!-- html fragment -->
<div class="htClass">content 1</div>
<div class="htClass anotherClass">content 2</div>
<!-- here, another class is additionally assigned -->

只需分配htClass给您希望为其执行特定功能的任何元素。

于 2013-07-19T09:41:30.557 回答
1

对于 id 开头的元素,您可以使用如下选择器ht

$("[id^='ht_']").click(function(){
});
于 2013-07-19T09:40:27.733 回答
0

那些不是选择器...很可能您需要 $(".ht_"+i) 或 $("#ht_"+i)... 除此之外,它应该适用于 IMO。

于 2013-07-19T09:40:55.257 回答
0

是什么ht_1?对于类,您需要使用.ht_1,对于 ID,它应该是#ht_1。如果你有很多类似的元素,$.live可能是一个不错的选择。

于 2013-07-19T09:43:00.470 回答