2010-05-21 30 views
1

我有一個項目jQuery選擇:在ID傳遞從數組功能

<div id="item1">somestuff</div> 
<div id="item2">somestuff</div> 
<div id="item3">somestuff</div> 

當用戶點擊其中的一個名單,我需要根據id(數)的一些行動。我們說隱藏它。

如何使通用函數,以及如何將id傳入函數?

$(document).ready(function() 
{ 
$("#item-howcanImakethisselectorgeneric?").click(function() { 
    $("#item-andhowcanIpasshteidintohere?").hide(); 
} 
} 

我是一個javascript/jquery新手,任何幫助(包括rtfm)讚賞。

回答

1
<div id="item1" class="mygenericClass">somestuff</div> 

<div id="item2" class="mygenericClass">somestuff</div> 

<div id="item3" class="mygenericClass">somestuff</div> 
$(document).ready(function() 
{ 
    $(".mygenericClass").click(function() { 
    //if you want the id then $(this).id 
    //if you just want to hide the clicked element then 
    $(this).hide(); 
    }); 
} 
+0

完美。如何獲得沒有「item」文本的id,即。只是數字? – PeterV 2010-05-21 17:07:32

+1

var justTheNumber =($(this).id).replace(「item」,「」) – 2010-05-21 17:23:30

0

試試這個:

<div id="item1" class="stuff">somestuff</div> 
<div id="item2" class="stuff">somestuff</div> 
<div id="item3" class="stuff">somestuff</div> 

JS:

$(document).ready(function() 
{ 
    $("#item1, #item2, #item3").click(function() { 
    $(this).hide(); 
    } 
} 

甚至更​​好:

$(document).ready(function() 
{ 
    $("div.stuff").click(function() { 
    $(this).hide(); 
    } 
} 

或者這個,如果你將裝車後動態地增加更多的div進入頁面,不想明確添加事件處理程序

$(document).ready(function() 
{ 
    $("div.stuff").live("click", function() { 
    $(this).hide(); 
    } 
} 
+0

如果你需要得到函數內的ID的實際文本,您可以使用 「this.Id」 – puffpio 2010-05-21 16:40:51

+0

真棒。而只獲得數字,那麼不是「item1」而只是「1」? – PeterV 2010-05-21 16:44:37