與您具體例如,你可以使用attribute starts with selector,然後解析被點擊的實際元素的類名。但我不會這麼做,它很脆弱。 (例如,假設你爲你的class
屬性添加了第二個類?這會使解析變得複雜,並且如果你把它放在sub-item-*
類之前,就會搞亂選擇器。)相反,我可能會使用物品的位置在其容器中(如果可以的話),或者將標記更改爲使用data-*
屬性。
下面是假設你的項目在其容器內的唯一一個例子:
Live example | source
<!-- (The 'items' are unchanged) -->
<div><!-- the container, this div is just an example -->
<a href="#" class="sub-item">Click 1</a>
<a href="#" class="sub-item">Click 2</a>
<a href="#" class="sub-item">Click 3</a>
<a href="#" class="sub-item">Click 4</a>
</div>
然後可以使用index
找出被點擊其格:
$(".sub-item").click(function() {
var $this = $(this),
index = $this.index() + 1;
$(".item-" + index).show(); // Or toggle, whatever
return false;
});
(您需要+ 1
因爲index
是從零開始。)
但如果他們不是容器中唯一的東西,可以使用data-*
屬性:
Live example | source
<!-- (The 'items' are unchanged) -->
<div><!-- the container, this div is just an example -->
<a href="#" class="sub-item" data-index="1">Click 1</a>
<a href="#" class="sub-item" data-index="2">Click 2</a>
<a href="#" class="sub-item" data-index="3">Click 3</a>
<a href="#" class="sub-item" data-index="4">Click 4</a>
</div>
...這使得它很容易:
$(".sub-item").click(function(e) {
var $this = $(this),
index = $this.attr("data-index");
$(".item-" + index).show(); // Or toggle, etc.
return false;
});