說明
我可以看到你在想什麼。
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.
這將有助於您發佈生成的HTML而不是ASP代碼。 – David 2012-01-01 13:52:43