2013-07-31 31 views
0

我正在編寫一個Web應用程序,用戶在其中點擊一個div,該div中包含一個帶有預定義文本的輸入文本框。當用戶點擊div時,代碼將被打印在一個單獨的文本框中。我正在嘗試編寫一個函數,用於獲取單擊div文本輸入的值。我有工作通過使用$(this).val();點擊輸入框本身,但我想點擊該div,然後它實質上得到的價值(this)('input[type=text].provided_code').val();如何獲得'this'輸入框的價值?

有沒有辦法說這個div裏面的文本輸入?還有像20 div的,在每個格20個輸入頁面上,並且均具有相同的類名等

+0

請告訴我們一些HTML,如果僅僅是爲了阻止人們錯誤地回答你。 – Archer

回答

1

是的,你可以指定選擇背景:

默認情況下,選擇在DOM內執行他們的搜索開始在文檔根目錄。 http://api.jquery.com/jQuery/#jQuery1

所以,你的代碼看起來是這樣的:

$('input[type=text].provided_code', this).val() 
然而,備用上下文可以通過使用可選的第二個參數$()函數

文檔給出的搜索

性能:

http://jsperf.com/jquery-find-vs-context-sel/38

+0

這似乎在我的情況下效果最好。感謝您的快速響應。我正在使用'(this)('input [type = text] .provided_code')'這顯然會引發錯誤。 – EHerman

+0

將在4分鐘內標記爲正確答案 – EHerman

+1

正如旁註所示,$(this).find('input [type = text] .provided_code')'更高效。 – Archer

1

是的,你可以這樣做:

$(this).find("input[type='text']").val(); 

假設有文本類型的一個輸入在那個div裏面。

0

您可以使用find - 雖然,除非輸入具有唯一的類或ID,否則無法針對您的div單擊某個特定輸入。

$('div').on('click',function(){ 
    var value = $(this).find('input[type=text].provided_code').val(); 
}) 
1

而不是(this)('input[type=text].provided_code').val();

你應該使用正確的jQuery與查找功能。

$(this).find('input[type="text"].provided_code'].val();