jQuery从另一个html页面获取变量值

jQuery get variable value from another html page

本文关键字:获取 变量值 html 另一个 jQuery      更新时间:2023-09-26

我有一个包含此内容的html页面,名为"page1.html":

<div>
    <div id="content">
        content
    </div>
    <script type="text/javascript">
        var x=5;
        var y=2;
    </script>
    <div id="other">Some other content</div>
</div>

在另一个html页面中,我想获得变量"x"(5)的值。这是主页面:

<!DOCTYPE html>
<html>
<head lang="en">
    <script type="text/javascript" src="app.js"></script>
</head>
<body>
    <div id="new_content"></div>
</body>
</html>
这是app.js脚本:
$(function(){
    $.get('page1.html', function(result){
        var obj = $(result).find('script');
        $(this).append($('#new_content').text(obj.html()));
    });
});

结果是"var x=5;var y = 2;"。有没有办法让var x只得到5 ?

谢谢你的帮助。

编辑:我忘了写这只是一个例子,在page1.html脚本中的代码比所示的更复杂。对象"obj"在app.js是一个[objecthtmlscriptelement],所以我想知道如果一个方法/att存在,我可以用它来直接访问var x。

或者您可以这样简单地使用localStorage:

page1.html :

localStorage.setItem("x", "value"); //setter

page2.html :

var x = localStorage.getItem("x"); //getter

这看起来有点奇怪。

我会尽我最大的努力来回答,但最好能多了解一下你为什么要这样做,因为可能有更好、更干净的方法。

我的建议与你已经给出的信息将值分配给一个DOM对象,jQuery是构建来遍历DOM和操作它,它真的不是一个好主意,试图解析原始javascript提取变量值。

那么,第1页应该是这样的:

<div>
    <div id="content">
        content
    </div>
    <div class="myData" data-x="5" data-y="2" />
    <div id="other">Some other content</div>
</div>

然后我的jQuery看起来像这样:

$(function(){
    $.get('page1.html', function(result){
        var obj = $(result).find('script');
        var page1X = $(result).find('div.myData').data('x');
        var page1Y = $(result).find('div.myData').data('y');
    });
});

这只是伪代码,但希望你能明白。

参考链接:

  • http://api.jquery.com/data/

您可以尝试注释增值税y=…在粘贴代码前插入一行,如:

$(function(){
    $.get('page1.html', function(result){
        var obj = $(result).find('script');
        $(this).append($('#new_content').text(obj.html().replace('var y','//var y')));
    });
});

从另一个html页面获取值例如page1

<input type="text" id="pageoneinputid" value="pageone">
第二页的

script标签

var a=$("#pageoneinputid").val()
document.getElementById("pagetwoinputid").innerHtml=a;