我有一個非常奇怪的問題與我維護的網絡系統。在視圖中,我想從我的DOM中的標籤字段獲取問題編號。但是,我的代碼無法找到標籤元素。jQuery.siblings沒有找到兄弟姐妹
這是腳本部分。
$(document).ready(function() {
$(function() {
var result = $(".answer").click(function() {
$(this).editable({
className: "",
saveUrl: "../api/Results/SaveResults",
create: function() {
var number = $(this).siblings(".number").text();
console.log(number);
$(this).editable("option", "questionNumber", number);
}
});
});
});
});
這是HTML
<div class="questionDiv">
<asp:Label ID="questionNumber1" runat="server" CssClass="number"></asp:Label>
<asp:TextBox ID="answer1" Wrap="True" runat="server" CssClass="answer" TextMode="MultiLine" Width="100%"
Rows="5" MaxLength="2000" Columns="65"></asp:TextBox>
</div>
而且在瀏覽器中呈現:
<span id="questionNumber1" class="number">1</span>
<textarea name="answer1" rows="5" cols="65" id="answer1" class="answer" style="width: 540px; "></textarea>
出於某種原因,數量在創建函數變爲空字符串。使用$(this)
的原因之一是因爲每頁有多個問題。該label.text
由Page_Load()
方法中的後面的代碼設置。
我一直在嘗試一些不同的組合;
$(this).prev().text()
$(this).parent().children(".number").text()
$(this).parent().children().find(".number").text()
等
如果我試圖在鉻控制檯,即這些組合。 $("#answer1").siblings().text()
它完美的作品。
有沒有人有任何線索,爲什麼發生這種情況?所有的元素都應該在document.ready()
函數中完成。
在此先感謝。
彼得
編輯:後SOM更多的研究,我發現,即使我用var number = $("questionNumber1").text();
我只是得到一個空字符串。問題可能與DOM未被完全加載有關。該腳本塊位於document.ready()
中,所以可以猜測DOM已加載。