我在代码中有这个代码。 我从后面的代码中调用了函数setmessage 。
<script type="text/javascript">
function setmessage(msg) {
$.mobile.changePage( "#pagethree", { transition: "slideup", changeHash: true });
document.getElementById('<%= lbl_msg.ClientID %>').Text = msg;
}
</script>
您能告诉我为什么&#39; lbl_msg&#39; 没有更新。
答案 0 :(得分:0)
尝试使用:
document.getElementById('<%= lbl_msg.ClientID %>').innerHTML = msg;
或:
document.getElementById('<%= lbl_msg.ClientID %>').textContent = msg;
而不是:
document.getElementById('<%= lbl_msg.ClientID %>').Text = msg;
答案 1 :(得分:0)
document.getElementById只会在它在DOM中的任何位置找到该特定标记ID的第一个实例上运行。因此,您需要识别当前页面,然后在该页面上查找所需的ID。
您可以使用以下代码执行此操作:
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
$("YOUR TARGET ID HERE", activePage)[0].innerHTML = "YOUR TEXT HERE";
值得注意的是,innerHTML比其他方法(如append)快3倍。因此,它也可能比使用服务器端技术(如.Net)快得多。
我也注意到,有时候玩JQM中的动作可能会产生很大的不同。这通常是由于在一个元素可用于JQuery之前触发了您的操作。为了便于调试,请尝试通过pagecontainershow事件或其中一个将消息添加到标签。如果消息显示您知道事件订单问题,则必须重新考虑您的脚本。