当用户点击"编辑"时,我会将用户从另一个页面重定向。按钮使用下面的代码。
$('#editListButton').click(function(){
window.location.href = "http://localhost/yyy.php"; //redirect
// Changes that need to be made
$('#defaultText').remove();
$('#orderList').append('<p' + 'message' + '</p>');
});
页面重定向到预定义链接,之后我需要更新带有文本的html <div>
标记。但是来自其他页面的代码什么也没做。如何更改div标签中的文本?
答案 0 :(得分:3)
将其传递到网址。
$('#editListButton').click(function(){
window.location.href = "http://localhost/yyy.php?message"; //redirect
});
然后在另一页
var url = window.location.href.split('?');
var msg = url[1];
$('#defaultText').remove();
$('#orderList').append('<p>' + msg + '</p>');
答案 1 :(得分:2)
一旦你触发了一个将重新加载整个页面的操作,浏览器(不是全部,但似乎大多数)只会退出当前页面的任何内容,实际上忽略了事件循环中的任何DOM更新。 / p>
为了解决这个问题,通常可以通过短暂的超时延迟重定向:
setTimeout(function() {
window.location.href = "http://localhost/yyy.php";
}, 1);
现在浏览器不知道要重新加载页面,所以它会服从你的DOM更新请求。
编辑 - 如果您期望的是(并且OP中并不是很清楚,但是在下面的评论中暗示了这一点)是更新位置后的代码会影响新页面,这不是事情的运作方式。您可以将该代码放在新页面中(如果需要,可以通过您正在加载的URL传递参数)并让它在那里运行,否则您可以完全更改架构并通过ajax加载新代码。
答案 2 :(得分:1)
有很多方法可以将信息从一个页面传递到另一个页面。为了解这个概念,有点与发布的问题有关,这里有一个:
第A页:
$('#editListButton').click(function(){
window.location.href = "http://localhost/yyy.php?action=remove&value=" +
encodeURIComponent('ashdahjsgfgasfas');
});
Page B:
var action = /(?:\?|&)action=([^&$]+)/.exec(location.search)
if ( 'remove' === action[1] ) {
var value = /(?:\?|&)value=([^&$]+)/.exec(location.search)
$('#defaultText').remove();
$('#orderList').append('<p>' + value[1] + '</p>');
}