2012-09-21 43 views
1

我試圖在點擊標題鏈接時將焦點設置在textarea元素上。 這是HTML:jquery着眼於下一個div中的元素

<h2 class="trigger active"><a href="#" id="">header</a></h2> 
<div class="toggle_container" style="display:block;"> 
    <div class="block" id="1"> 
     <div>Blah</div> 

     <textarea name="VALUE">Blah blah</textarea> 

    </div> 
</div> 

點擊H2時,我怎麼能相對目標的textarea的?

我準備了的jsfiddle: http://jsfiddle.net/MkePe/3/

任何幫助表示讚賞..

UPDATE: 已經有一個有效的解決方案,但是當有資料覈實不到底有正確的內容,一切發生故障。如果沒有Textarea,get(0)方法會產生JS錯誤。是否有一個靈活的解決方案也能記住這一點?這裏的非工作小提琴: http://jsfiddle.net/3AbHY/3/

回答

3

修改後的小提琴HERE

在H2單擊處理:

$(this).next().find('textarea').focus(); 
+0

謝謝,就是這樣!我沒有想到「get(0)」,這有助於相處。 – cukabeka

+0

嗨!只是發現您的解決方案需要在每個div中都有一個TEXTAREA,而這個TEXTAREA不是由我的HTML內容提供的。看到http://jsfiddle.net/3AbHY/3/ – cukabeka

+0

奧基然後..所以你如何在這種情況下腳本的行爲? – Stphane

1

通過添加ID的文本區像這樣的id="toFocusArea",你HTML變爲:

<h2 class="trigger active"><a href="#" id="">header</a></h2> 
<div class="toggle_container" style="display:block;"> 
    <div class="block" id="1"> 
     <div>Blah</div> 

     <textarea name="VALUE" id="toFocusArea">Blah blah</textarea> 

    </div> 
</div> 

而點擊事件處理程序只是使用focus直接在文本區:

$("#toFocusArea").focus(); 
+0

好吧,那不是相對的..但是謝謝! – cukabeka