jquery.find不返回ie中的数据

时间:2012-10-25 23:44:00

标签: jquery internet-explorer-8

<H1 class=extraBottomMargin>Tell us the name of your employers</H1>
        <UIWIDGET>
            <FIELDSET>
                <DIV>
                    <INPUT id=viewEnterEmployerNames_q1 tabIndex=1 maxLength=75 placeholder="Employer">
                </DIV>
            </FIELDSET>
        </UIWIDGET>
        <DIV class="rightRail watermark"><IMG src="app/img/RR_Watermark.png"></div>

我运行命令jQuery("above html").find("UIWIDGET").html()

这适用于IE 8以外的所有浏览器。请咨询。

请注意,uiwidget是我的自定义标记,因此请忽略建议对其进行任何改进的部分。

2 个答案:

答案 0 :(得分:2)

没有名为UIWIDGET的HTML标记 - 在较旧的IE版本中,访问非标准标记的工作无需先创建它们。

您可以通过调用document.createElement('UIWIDGET')轻松完成此操作 - 这就是html5shiv为HTML5元素执行的操作。

如果您计划使用某些HTML5代码,您可以添加html5shiv并在包含html5shiv脚本之前运行以下代码:html5.options.elements += ' uiwidget';

但是,如果您根本没有使用无效的HTML标记,那么会好得多

答案 1 :(得分:0)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:custom="http://www.test.com">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<body>
<H1 class=extraBottomMargin>Tell us the name of your employers</H1>
        <custom:uiwidget>
            <FIELDSET>
                <DIV>
                    <INPUT id=viewEnterEmployerNames_q1 tabIndex=1 maxLength=75 placeholder="Employer">
                </DIV>
            </FIELDSET>
        </custom:uiwidget>
        <DIV class="rightRail watermark"><IMG src="app/img/RR_Watermark.png"></div>
</body>

<script>    
$(function() {
   alert($("uiwidget").html());
});
</script>

这可以在IE中使用,但WON'T可以在其他浏览器中使用! 这是IE定义和支持自定义标签的官方方式。 这反映在.getElementsByTagName()方法上,所以我认为如果您使用jQuery或其他库或只是直接调用<mytag>,在IE中搜索自定义标记如.getElementsByTagName()无关紧要。搜索Google,您可以找到许多有关此问题的官方和非官方文章。