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 .load函数刷新元素而不重复它

使用 Jquery 在单击按钮时将 PHP 文件中的 HTML 加载/预置到 div 中

Jquery load() 不会在 div 中加载脚本标签

Jquery .load / .empty 不从 div 加载和清空内容

jquery在可见时移动div