如何使用jquery处理$.get并捕获html元素?
我正在使用jQuery阅读一个html文档。下面是我的代码。我需要找到如何使用jquery处理$.get并捕获html元素?,jquery,html,alert,Jquery,Html,Alert,我正在使用jQuery阅读一个html文档。下面是我的代码。我需要找到lang属性,它是HTML元素的一个属性。但我很难按照我现在的方式选择它。当我处理HTML标记时,它要么没有值,null要么undefined 你能帮我解决这个问题吗 $.get(page, function(response) { alert(response); alert($(response).filter('html').attr('lang')); }); 在响应文本上执行$(response)
lang
属性,它是HTML元素的一个属性。但我很难按照我现在的方式选择它。当我处理HTML标记时,它要么没有值,null
要么undefined
你能帮我解决这个问题吗
$.get(page, function(response) {
alert(response);
alert($(response).filter('html').attr('lang'));
});
在响应文本上执行$(response)
时,大多数(如果不是所有)浏览器都会删除html
元素。要查看它,我看到两个选项:
标记上的属性并不复杂。例如,这应该提取lang
属性,排除异常:
var regex = /<\s*html\s[^>]*lang\s*=\s*["']?([A-Za-z0-9\-]+)/i;
var matches = regex.exec(str);
console.log(matches[1]);
(我不得不在这方面有所防御性,因为JSBin将我们的页面包装在自己的框架中。)您可以使用javascript执行以下操作:
<script type="text/javascript">
var language = document.getElementsByTagName("html")[0].getAttribute("lang");
alert(language);
</script>
var language=document.getElementsByTagName(“html”)[0].getAttribute(“lang”);
警觉(语文);
您的第一个解决方案。我该怎么做?我试了第二个。谢谢,但当我使用这个iframe时,我的页面会加载更长的时间,显示连接…第一个解决方案是直接处理字符串。您无法使用正则表达式正确解析HTML,但当您想要提取特定内容时,通常可以使其正常工作。在我的头顶上,正则表达式lang\s*=\s*[“']”?([A-Za-z0-9\-]+)/我应该非常接近,在第一个捕获组中捕获值。谢谢你的回答。我是jquery的新手,正则表达式的知识非常差。很抱歉,我不知道如何使用正则表达式捕获lang值。你能进一步解释一下吗?var str=response.toString();var regex=/]*lang\s*=\s*[“]”([A-Za-z0-9\-]+)/i;var matches=regex.exec(str);
顺便说一句,这会返回空值。@guitarlass:你做得对。它对我有用(有点让我吃惊;我刚刚把它一笔勾销了)我会通过一个调试器,并确保<代码>响应< /代码>包含你所期望的。@吉他手:好交易。如果这解决了你的问题,请考虑“接受”答案。详情:
<script type="text/javascript">
var language = document.getElementsByTagName("html")[0].getAttribute("lang");
alert(language);
</script>