2014-05-25 30 views
0

我有以下結構:JQuery的遍歷上再向下

<div> 
    <button class="buttonClass">Click Me</button> 
</div> 
<div> 
    <form id="formID">...</form> 
</div> 

當提交表單我想模擬按鈕點擊與類buttonClass

這就是我想,但它沒有找到按鈕,模擬點擊:

$.ajax({ 
    type: "POST", 
    url: URL, 
    context:this, 
    data: $(this).serialize(), 
    success: function (data) { 
     $(this).closest('.buttonClass').click(); // not finding button 
    } 
}); 

有幾種形式和按鈕的頁面上,所以我只需要點擊最近buttonClass

+0

在給出的代碼的上下文中,$(this)是什麼?表格? – Popnoodles

+0

是啊$(this)是表格 –

回答

1

相信$(this)在目前情況下是指的形成元素。你可以使用:

$(this).parent().prev().find('.buttonClass').click(); 
+0

如果HTML保持原樣,這將很好地工作。在中間添加另一個div或在表單上纏繞另一個div,然後擰緊。達倫如果什麼都不會改變,請使用這個答案。 – Popnoodles

+0

是的,HTML是固定的,很好的答案!非常感謝Popnoodles的回答太 –

+0

@DarrenSweeney:很高興它有幫助。 –

1

假設$(this)是表格,因爲您使用的是$(this).serialize$(this).closest('.buttonClass').click()找不到該按鈕,因爲它不是表單的祖先,而是其他地方。

你需要同時包含表單和按鈕的祖先穿越到

<div class="wrapper"> 
    <div> 
     <button class="buttonClass">Click Me</button> 
    </div> 
    <div> 
     <form id="formID">...</form> 
    </div> 
</div> 

,那麼你可以找到它

$(this).closest('.wrapper').find('.buttonClass').click();