2014-01-29 159 views
4

很難在一個小標題中將其作爲一個問題來表達。使用jQuery,你如何選擇基於點擊元素的另一個元素?

基本上,我有一個div:

<div class="sites" id="site1"></div> 

其是可點擊的用戶,並在單擊該div時,我想另一個div來具有類似ID出現:

<div id="site1_desc" class="description_holder"> 

有沒有一種方式,當前div被點擊時,我可以選擇使用後者。我有站點2,3相同的DIV組合,4等等。我想是這樣的:

$(document).ready(function(){ 
    $('.sites).click(function(){ 
     $(this&'_desc').css({visibility: "visible"}); 
    }); 
}); 

我能理解上述不會工作,但我不知道該怎麼辦最好的方法是。我希望現在這個問題更清楚。

回答

2

用途:

$(document).ready(function(){ 
$('.sites').click(function(){ 
    $('#'+$(this).attr('id')+'_desc').css({visibility: "visible"}); 
}); 
}); 

Working Fiddle

+0

還在選擇器中缺少報價 –

+0

對我很好,謝謝。 – k4kuz0

1

您需要使用this.id代替這個來獲取id。將此事件源對象ID與字符串「_desc」連接起來。您還需要在選擇器的開頭使用#作爲id選擇器。

$(document).ready(function(){ 
    $('.sites').click(function(){ 
     $("#" + this.id + '_desc').css({visibility: "visible"}); 
    }); 
}); 
+0

缺少選擇器中的報價 –

1

您可以使用this.id獲得點擊項目的ID,你也缺少報價在選擇和需要把#前ID選擇器。

$(document).ready(function(){ 
    $('.sites').click(function(){ 
    //.......^.................. 
     $('#'+this.id+'_desc').css({visibility: "visible"}); 
    //....^....^.......... 
    }); 
}); 

+可以用於級聯

1

指定在點擊元素上的數據屬性的目標:

<div class="sites" id="site1" data-target='site1_desc'></div> 

$(document).ready(function(){ 
    $('[data-target]').on('click', function(){ 
     $('[data-target=' + $(this).data('target') + ']').show(); 
    } 
}); 

...那麼它將適用於具有任何元素data-target。這種模式在很多流行的前端框架中使用;例如,Twitter Bootstrap的可摺疊菜單。

相關問題