Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用get()jquery从Html变量获取Html标记_Javascript_Jquery - Fatal编程技术网

Javascript 使用get()jquery从Html变量获取Html标记

Javascript 使用get()jquery从Html变量获取Html标记,javascript,jquery,Javascript,Jquery,第一:我是javascript新手,所以如果我的语法是新手,请原谅我 我一直在尝试使用jquery中的get()获取HTML标记中的数据。但无论我尝试了多少不同的变体,它都不会起作用。有人能告诉我我做错了什么吗 下面是我正在使用的javascript $.get('load.html', function(raw){ var bodyHtml = $(raw).filter('body').html(); var divHtml = $(raw).filter('div').ht

第一:我是javascript新手,所以如果我的语法是新手,请原谅我

我一直在尝试使用jquery中的get()获取HTML标记中的数据。但无论我尝试了多少不同的变体,它都不会起作用。有人能告诉我我做错了什么吗

下面是我正在使用的javascript

$.get('load.html', function(raw){
    var bodyHtml = $(raw).filter('body').html();
    var divHtml = $(raw).filter('div').html();
    var title = $(raw).filter('title').text();
    var tag = $(raw).filter('tag').html();
    $('#body').html(bodyHtml);
    $('#tag').html(tag); 
    $('#title').html(title);
    $('#result').html(divHtml);
    $('#raw').html(raw);
});
下面是load.html页面上的html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>title load.html</title>
</head>
<body>
<div>div 1<tag>divtag</tag></div>
<tag>tag</tag>
</body>
</html>

title load.html
div 1divtag
标签
这是页面运行后的结果。index.html

<html><head>
<title>index.html</title>
<script type="text/javascript" src="js/jquery/jquery-1.5.1.min.js"></script>  

<script type="text/javascript">  

$.get('load.html', function(raw){
    var bodyHtml = $(raw).filter('body').html();
    var divHtml = $(raw).filter('div').html();
    var title = $(raw).filter('title').text();
    var tag = $(raw).filter('tag').html();
    $('#body').html(bodyHtml);
    $('#tag').html(tag); 
    $('#title').html(title);
    $('#result').html(divHtml);
    $('#raw').html(raw);
});

</script> 
</head>

<body> 

<div id="title">title load.html</div>
<div id="body"></div>
<div id="result">div 1<tag>divtag</tag></div>
<div id="tag">tag</div>
<div id="raw">

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>title load.html</title>


      <div>div 1<tag>divtag</tag></div>
      <tag>tag</tag>


</div>


</body></html>

index.html
$.get('load.html',函数(原始){
var bodyHtml=$(原始).filter('body').html();
var divHtml=$(原始).filter('div').html();
var title=$(原始).filter('title').text();
var tag=$(原始).filter('tag').html();
$('#body').html(bodyHtml);
$('#tag').html(tag);
$('#title').html(title);
$('#result').html(divHtml);
$('#raw').html(raw);
});
title load.html
div 1divtag
标签
title load.html
div 1divtag
标签

有一件事需要注意。看起来jquery没有返回。此外,如果页面上有多个。此脚本是否应将其设置为数组(例如)

您需要将您的
$.get()
调用封装在“document ready”处理程序中-此时,您尝试操作的DOM元素在进行调用时不存在:

$(document).ready(function() { 
    // your code here
});

以下是结果。我认为是html()标记剥离了变量的body和head标记。当我从url发出警报(原始)时,它会显示完整的html页面。但是当我尝试修改该变量时,标记()就会消失。我当时还以为是jquery。所以我尝试了一个正则表达式。果然,我得到了同样的精确结果。所以我只能检索像title、div这样的标签,而不能检索body

$(document).ready(function() { 
    $.get('load.html', function(raw){

        var matches = raw.match(/<title\b[^>]*>(.*?)<\/title>/gi);
        //var matches = matches[0].replace(/(<\/?[^>]+>)/gi, ''); // Strip HTML tags?

        alert(matches);

    }, "html");
}); 
$(文档).ready(函数(){
$.get('load.html',函数(原始){
var matches=raw.match(/]*>(.*)/gi);
//var matches=matches[0]。替换(/(]+>)/gi',;//去除HTML标记吗?
警报(火柴);
},“html”);
}); 

谢谢,我会确保将其添加到我的实践中。然而,同样的结果。其他人似乎已经找到了原因。但我无法找到集成到解决方案中的正确方法。有什么想法吗?其他人似乎已经找到了原因。但我无法找到集成到解决方案中的正确方法。有什么想法吗?