2013-01-05 52 views
0

我有很多複選框,併爲每一個我有一個輸入字段旁邊 我想當我點擊每個複選框..輸入下一個disapear!所以我這樣做..它看起來合乎邏輯的我,但它是一個爛攤子jQuery的問題複選框,隱藏輸入旁邊

$(":checkbox").click(function() { 
    $(":checkbox").next().hide(); 
}); 

,但它隱藏的文件全部投入 所以我tryed這

this.next().hide(); 

,但它不工作! 我在沉默中試過這個!

for(i=0;i<$(":checkbox").length;i++){ 
    $(":checkbox").eq(i).click(function() { 
     $(":checkbox").eq(i).next().hide(); 
    }); 
} 

仍然不能正常工作!我的邏輯有什麼問題?

+0

舉起小提琴 –

回答

1

你想用作選擇器的複選框是這樣的 -

$('input:checkbox'); 

其次,在點擊處理程序的回調中,您可以使用$(this)關鍵字來訪問創建該事件的特定元素。

$("input:checkbox").on('click',function() { 
    $(this).next().hide(); 
}); 

我喜歡非常詳細和我的選擇,以提高可讀性,所以作爲最後一個建議,爲什麼不給next()功能給一個選擇,並指定要尋找下一個input元素?

$(this).next('input').hide(); 
3

嘗試:

$('input[type=checkbox]').change(function() { 
    $(this).next().toggle(); 
}); 
1

它應該是:

$(":checkbox").click(function() { 
    $(this).next().hide(); 
}); 

this$(this)有很大的不同,我建議你通過jQuery的文檔獲取更多信息閱讀,因爲它是非常fundemental ..