2010-08-11 96 views
1

我想到足夠的jQuery來從一個巨大的HTML文檔中選擇這個塊。我想選擇主題的值,bodydate_or_offset。 (這些是name屬性,如下所示)。我該如何解決這個問題。假設這個打印是在alert($(this).html())裏面的一個回調函數。幫助jQuery選擇

<p><label for="first">Subject</label> <br> 
    <input class="input" name="subject" type="text"> 
</p> 
<p><label for="textarea">Body </label> <br> 
    <textarea class="textarea" name="body" id="textarea" rows="5" cols="30"></textarea> 
</p> 
<p><label for="first">Date <span>(xx/xx/xxxx) or Offset</span></label> <br> 
    <input class="input" name="date_or_offset" id="first" type="text"> 
</p> 

回答

3

您可以通過.find().val()得到它,就像這樣:

var subject = $(this).find('input[name=subject]').val(); 
var body = $('#textarea').val(); 
var date = $('#first').val(); 

由於ID是唯一的,最後的2可以通過#ID選擇直接選擇,第一,我們通過name="subject"發現使用一個attribute-equals selector。如果不是唯一(並且它們應該是,請修復它)(如果是這種情況),則可以使用其他的[name=xx]選擇器,只需使用textarea而不是代替body元素。

+0

find是否真的有必要嗎? – 2010-08-11 01:33:40

+0

@Gert - 這取決於他有一個元素,沒有更多的上下文,你不能肯定地說...但它在任何情況下都更有效率。 '$('input [name = subject]')'真的會調用'$(document).find('input [name = subject]')'來搜索整個文檔,這會搜索更窄的範圍,所以它是一個更快的選擇器。 – 2010-08-11 01:38:34

+0

+1這很有道理。謝謝Nick。 – 2010-08-11 01:48:06

3
$("input[name=subject]").val(); 
$("#textarea").val(); 
$("#first").val();