Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
如何使用jquery处理$.get并捕获html元素?_Jquery_Html_Alert - Fatal编程技术网

如何使用jquery处理$.get并捕获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)

我正在使用jQuery阅读一个html文档。下面是我的代码。我需要找到
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>