jquery load() 在使用 div 时获取参数的问题
Posted
技术标签:
【中文标题】jquery load() 在使用 div 时获取参数的问题【英文标题】:jquery load() problems getting parameters when using div 【发布时间】:2016-07-08 11:44:20 【问题描述】:我不是 html、jquery 或 javascript 专家,我在尝试检索通过 jquery 传递到子 html 页面的参数时遇到问题 .load() 我希望有人可以帮助我。
先介绍一下背景:
我的主 html 页面 index.html
,有一个 ID 为 PageContent
的 div。单击主页面中的菜单项时,主页面会将任何其他 html 页面作为主页面的子页面加载到此 div 中。
在我的 html 中有
<div id="PageContent"></div>
在主页面javascript文件中当有人选择如下菜单项时
onclick=''callPage(document.getElementById("subPage1").href,
"user:'" + ipUserId + "'");''
我们调用下面的代码
function callPage(stPageLink, stPageParams)
$("#PageContent").load(stPageLink, stPageParams);
...
在 subpage1.html 中,我想将传递的参数(用户)的值分配给文本字段 txt1,就像在 url 中发送值一样。 示例:
<input id="txt1" type="text" value="this.document.user.value" >
但它似乎不起作用。
我也试过$("#txt1).val($("#PageContent").attr( 'user' ));
这也不起作用。
在这两种情况下,页面都会加载,但没有检索到任何参数。
我花了 1 天的时间试图在这个网站和其他网站上找到答案,但没有成功。因此,如果有人知道是否有可能做到这一点,或者可以指出我正确的方向。如果他们能张贴一些东西,我将不胜感激。
在这个阶段,我想知道使用 iframe 是否会更好?
我尝试过的事情:
我无法执行以下示例,因为它在 chrome 中不起作用。$("#PageContent").load(stPageLink +"?userid='usr1');
我不能使用 window.href,因为我正在使用 load() 并且我正在将 html 加载到 div 中。所以 window.href 将返回 "... /index.html" 而不是 "... subpage1.html?user="usr1"
很遗憾我不懂php。
【问题讨论】:
JavaScript 中没有名为on-click
的属性。使用onclick
。
谢谢。这是我进入帖子时的一个错字。但实际代码是正确的。我已经在原帖中修复了它。
【参考方案1】:
$('#mylink').click(function ()
$('#PageContent').load("/mypage?user="+$('#txt1').val());
);
【讨论】:
【参考方案2】:您可以使用.click(handler)
将事件附加到元素; $.param()
将序列化字符串作为javascript
对象的表示形式传递,在options.url
上使用.split()
.ajaxComplete()
重新创建作为序列化字符串传递的对象,设置.val()
的input
元素
function callPage(stPageLink, stPageParams)
$("#PageContent").load(stPageLink + $.param(stPageParams))
$(document).ajaxSuccess(function(event, jqxhr, options, data)
var data = options.url.split("?")[1].split("=");
var res = ;
res[data[0]] = data[1];
$("#txt1").val(res[data[0]]);
)
$("button").click(function()
var ipUserId = "abc";
callPage(document.getElementById("subPage1").href + "/?",
user: ipUserId
)
)
jsfiddle https://jsfiddle.net/re44fzr6/
【讨论】:
【参考方案3】:我发现了问题所在。答案太明显了,我看不到。在我的父程序中,我创建了以下两个共享变量。
var array1 = [];
var array2 = [];
我在使用 jquery .load 时遇到的问题是我犯的一个错误。以下作品 函数调用页面(stPageLink) getArrayParams(stPageLink); $("#PageContent").load(stPageLink)
onclick=''callPage(document.getElementById("LoginMenu").href + '?user=' + ipUserId);''
我遇到 jquery .loadbefore 的问题是因为我做了以下这些垃圾。
onclick=''callPage(document.getElementById("LoginMenu").href + '?user="' + ipUserId + '"');'
然后我创建了一个函数来将每个参数对解析为相关数组。 这行得通。谢谢你们的帮助。只是为了你的提示,我不会看到它。
【讨论】:
以上是关于jquery load() 在使用 div 时获取参数的问题的主要内容,如果未能解决你的问题,请参考以下文章
在 div 中实现 jQuery,该 div 包含刚刚用 jQuery 的 .load() 加载的内容
使用 Jquery 在单击按钮时将 PHP 文件中的 HTML 加载/预置到 div 中