我的代碼如下:jQuery的刷新的div基於HTML5數據元素
$('*[data-pickup]').change(function(){
var value = $(this).val();
console.log(value);
$.ajax({
type : "POST",
cache : false,
url : "a.php?pickup",
data : {'X': value},
success: function(data) {
$("*[data-pick='" + $(this).attr("data-pickup") + "']").html("HELLO");
}
});
$("*[data-pick='" + $(this).attr("data-pickup") + "']").html("HELLO 2");
$("*[data-pick='" + $(this).attr("data-pickup") + "']").show();
})
的AJAX調用示出了通過螢火蟲,這是不被在屏幕上刷新觀察時的響應,所以我改成一個簡單的「你好」的迴應,但仍然無法正常工作。
如果我註釋掉.html("HELLO 2")
線,它顯示了包含data-pick=1
或data-pick=2
等HTML5的數據元素的一次隱藏DIV(這取決於attr("data-pickup")
是),它自動填充「測試」,因此它顯示「測試」。
如果我取消對.html("HELLO 2")
行的註釋,則顯示的div會顯示「HELLO 2」。但是,在註釋掉.html("HELLO 2")
行的情況下,它應該通過AJAX調用從「Test」更新爲「Hello」,但事實並非如此。如果我將數據*更改爲簡單的HTML id元素並將所有代碼更新爲#" + $(this).attr("data-pickup") + "
,則它與data屬性完全相同(AJAX調用不會更新任何內容)。
而當使一個稱爲「EL」 var和使其等於*[data-pick='" + $(this).attr("data-pickup") + "']
,然後將其輸出到控制檯它顯示爲:「[數據挑選=‘1’]」或「 [DATA-如果我將$("*[data-pick='" + $(this).attr("data-pickup") + "']").whatever
中的所有代碼更新爲$(el).whatever
(認爲某處可能有錯誤),它仍然與以前一樣。
那麼,我做了什麼錯了?爲什麼div不會通過AJAX調用刷新,而是在AJAX調用之後呢?
成功函數裏面的'this'與變更句柄中的其他地方不一樣。 –
@ Roamer-1888 – Amir