Javascript 使用get()jquery从Html变量获取Html标记
第一:我是javascript新手,所以如果我的语法是新手,请原谅我 我一直在尝试使用jquery中的get()获取HTML标记中的数据。但无论我尝试了多少不同的变体,它都不会起作用。有人能告诉我我做错了什么吗 下面是我正在使用的javascriptJavascript 使用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
$.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”);
});
谢谢,我会确保将其添加到我的实践中。然而,同样的结果。其他人似乎已经找到了原因。但我无法找到集成到解决方案中的正确方法。有什么想法吗?其他人似乎已经找到了原因。但我无法找到集成到解决方案中的正确方法。有什么想法吗?