2012-01-01 77 views
0

所有文字這是我的代碼jQuery的獲得DIV

<div class="formItem"> 
    <asp:Label ID="Label1" runat="server" Text="Label">Test Label:</asp:Label> 
    <asp:TextBox ID="TextBox1" runat="server">Test Text</asp:TextBox> 
</div> 

如果我使用jQuery

alert($('.formItem').text()) 

的結果將是 「測試標籤:」

我怎樣才能得到結果as「Test Label:Test Text」

+0

這將有助於您發佈生成的HTML而不是ASP代碼。 – David 2012-01-01 13:52:43

回答

0

asp:TextBox是一個輸入,可以通過元素的val()方法檢索。

事情是這樣的:

alert($('.formItem').text() + $('.formItem').find("input[text]").val()); 
2

使用以下,

alert($('.formItem').text() + ":" + $('.formItem #TextBox1').val()'); 
+0

''val''是一個函數,而不是一個屬性。 – David 2012-01-01 13:57:35

+0

抱歉打錯了..我編輯了答案 – 2012-01-01 13:59:05

0
$('.formItem label').text() + $('#TextBox1').val(); 
1

說明

我可以看到你在想什麼。

alert($('.formItem').text()) 

但這其實打印出類.formItem內的所有文本。但是,問題在於輸入(文本框)沒有文本,它只有一個值。
或者,爲了更加準確,它具有一個名爲value的屬性。它在你的ASP例子中並不明顯。

通常情況下,HTML會是這個樣子

<div class="formItem"> 
    <label id="Label1" for="TextBox1">Test Label:</label> 
    <input id="TextBox1" type='text' value='Test Text' /> 
</div> 

jQuery中,檢索value屬性,有一個名爲.val()速記功能,並且是.attr("value")


相當於解決方案

Here's a JSFiddle example.

一個簡單的方法是分別處理元素,然後連接字符串。

alert($("#Label1").text() + " " + $("#TextBox1").val()); 

這將輸出"Test Label: Test Text"


替代解決方案

Here's a JSFiddle example.

爲了展示,你可以如何與父容器做到這一點,我將使用功能.children().each()

var sResult = ""; 
$('.formItem').children().each(function(){ 
    var sOutput = $(this).text(); 

    //check if the text is empty for the child, then get the value instead 
    if(sOutput == "") 
     sOutput = $(this).val(); 

    //if the text isn't empty, add it to the result string 
    if(sOutput != "") 
     sResult += " "+sOutput; 
}); 

alert(sResult); 

這也將輸出"Test Label: Test Text"

注意這個例子並不需要知道標籤和輸入元素的名稱,這也將影響所有.formItem容器。

Check this example out.

+0

我會使用ShadowScripter的替代解決方案,因爲我的標籤和文本框會不時增加。 – user1125107 2012-01-02 00:39:42

+0

嗨ShadowScripter,你的代碼對我來說很不錯。但是當我在div裏面的下拉列表中使用代碼時,我遇到了另一個問題。我在下拉列表中獲取所有項目,但不僅僅是所選項目。你能告訴我如何改進代碼嗎? – user1125107 2012-02-03 01:41:20

+0

@ user1125107直到我看到您當前的代碼,我才能真正幫助您。我建議你創建一個新問題,以便有人可以幫助你。給我新的問題的鏈接,我可以看看它。此外,請將您的問題的最佳答案標記爲「已接受」(小綠色複選標記)。 – ShadowScripter 2012-02-03 12:15:24