2012-05-17 18 views
1

我有一張桌子。當我點擊(內)TD時,我需要顯示一個隱藏的div,其中包含更多的div。該隱藏容器內的每個div都具有文本值。我需要選擇與點擊的TD相對應的值。選擇與點擊w/jQuery對應TD的div

JS

$(".clickme").click(function(){ 
    $("#hiddenDiv").hide().fadeIn(200); 

    if ($(this).text() == $("#hiddenDiv div").text()) { 
     // HOW DO I SELECT THAT DIV? 
     // matched div .css("color", "red"); 
    } 

}); 

HTML

<table id="myTbl"> 
<tr> 
    <td></td> 
    <td class="clickme">Left</td> 
</tr> 
</table> 

<div id="hiddenDiv" style="display:none"> 
    <div>Straight</div> 
    <div>Left</div> 
    <div>Right</div> 
</div> 

回答

1

demo jsBIn

$(".clickme").click(function(){ 

    var thisText = $(this).text(); 
    var $targetEl = $('#hiddenDiv > div:contains('+thisText+')'); 

    if($targetEl.length > 0){ // if exists 
      $("#hiddenDiv").hide().fadeIn(200); 
     $targetEl.css({color:'red'}); 
    } 

}); 
3

使用:包含選擇正確的一個:

$("#hiddenDiv div:contains(" + $(this).text() + ")") 
+0

包含不像''==這是在問題中使用。 – gdoron

+1

不要認爲'div'和':contains()'之間應該有空格。 –

+0

@gdoron我認爲這個問題的範圍綽綽有餘,不是嗎? – McGarnagle

0
$(".clickme").click(function() { 
    $("#hiddenDiv").hide().fadeIn(200); 
    var $this = $(this); 
    $("#hiddenDiv div").filter(function() { 
     return $(this).text() == $this.text(); 
    }).css("color", "red").show(); 
});​ 
+0

@Sagiv。再次閱讀答案......你錯了! 'var $ this = $(this);' – gdoron

+0

ü對,我沒有注意到。但是避免使用$這種語法是一種很好的做法,因爲如果您將它與$(this) –

+0

@Sagiv進行比較,會特別困惑。 '$ this'是一種非常常見的用途。閱讀本: [在jQuery中使用$ with變量是否有任何具體原因](http://stackoverflow.com/q/10204606/601179) – gdoron