[英]document.getElementById(somevar) not working
我有下面的代碼,但getElementById(setID)對我不起作用,我知道它捕獲了ID,因為alert(setID)有效。
任何想法?
function getdata(file, aID){
req = xmlHttpRequestHandler.createXmlHttpRequest();
req.onreadystatechange = Response;
req.open("GET", file, true);
req.send(null);
setID = aID;
}
function Response() {
var ready, status;
try {
ready = req.readyState;
status = req.status;
}
catch(e) {}
if (ready == 4 && status == 200) {
document.getElementById("data").innerHTML = req.responseText;
}
document.getElementById(setID).className = "someclass";
}
<div class="msg" id="someid">
<a href="javascript:getdata('data.php', 'someid')">somelink</a>
</div>
將setID用作全局變量或將其傳遞給回調函數。
function getdata(file, aID)
{
req = xmlHttpRequestHandler.createXmlHttpRequest();
setID = aID;
req.onreadystatechange = function() {Response(setID);};
req.open("GET", file, true);
req.send(null);
}
function Response(setID)
如果
document.getElementById("data")
不起作用,這是以下原因之一,占所有案例的99%:
元素不存在或不再存在
id data
有多個元素
當AJAX調用引入HTML代碼(其中也包含具有相同ID的元素)時,通常會發生這種情況。
您是將setID
變量setID
全局變量嗎? 如果沒有,請嘗試以下操作:
var setID = null; // we set this here because it is referenced in functions
function getdata(file, aID){
req = xmlHttpRequestHandler.createXmlHttpRequest();
req.onreadystatechange = Response;
req.open("GET", file, true);
req.send(null);
setID = aID;
}
function Response() {
var ready, status;
try {
ready = req.readyState;
status = req.status;
}
catch(e) {}
if (ready == 4 && status == 200) {
document.getElementById("data").innerHTML = req.responseText;
}
document.getElementById(setID).className = "someclass";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.