2014-03-02 36 views
0

現在我的網站上有一個常見問題解答區域,我想爲每個問題/答案添加一個「編輯」字段。如何從附加元素中提取值?

我添加了一個使用.text()的模態疊加層。函數來填充之前存在的「問題」和「答案」字段,而不必再次查詢服務器。 (所以模態疊加層是我們編輯問題的區域。)這對於頁面上的所有項目都能正常工作。

我有第二個函數,它使用.append()和Ajax將新的問題/答案插入數據庫,然後將其動態添加到頁面。這也正常工作。我的問題是,我剛追加到頁面上的最新項目(因爲append()只改變了DOM而不是實際的源)我不能使用.text();函數來拉出一個由附加元素中的信息填充的模式,因爲它在技術上不存在於源中。因此,我的編輯字段在問題和答案都是空白的,而不是包含用戶以前的條目。

是否有一種方法可以使用.text()來查找附加元素,或者使用類似的功能填充問題和答案字段而不查詢數據庫的方式?

(這裏的javascript/jquery的全部內容是使用已經加載的頁面上的元素(即舊的問題和答案)來填充新的「編輯」字段,而不必再次查詢數據庫對於這個問題&答案編輯。)

+0

_「我不能使用的.text();函數從一個附加元素中拉出一個填充了信息的模式,因爲它在技術上並不存在於源代碼中「_ - 這只是錯誤 - '.text'沒有看」源代碼「,它將文本從DOM中選擇元素(JavaScript甚至不能訪問瀏覽器本身的「源代碼」)。無論你的問題是什麼,它都必須是別的東西 - 我們不能說的,因爲你沒有提供任何關於你的代碼實際上在做什麼的有用信息。 – CBroe

+0

你能提供附加元素的html和ajax請求嗎? – Wilmer

回答

1

可以委託綁定到會聽取事件選擇,即使它不存在的文件,所以您選擇例如.text區段可能是某事像這樣

$(document).ready(function(){ 
    $(document).on('click','.notYetExisting',function(){ 
     alert('trigerred a click!'+$(this).text()); 
    }); 
    setTimeout(function(){ 
     $('body').append('<span class="notYetExisting">baarfooo</span>'); 
    },1000); 
}); 

所以你看到的綁定是當沒有類「notYetExisting」的元素,但它會提醒作爲一旦它的存在,你點擊它(在這個例子中其附加一秒鐘後)

所以這將是相同的與你的AJAX的東西