jQuery不适用于XHTML页面

时间:2012-10-05 14:27:06

标签: jquery xhtml

这是我的XHTML页面的代码。 jQuery位于我的应用程序的/js/文件夹中。所有其他页面的验证都是使用相同的文件使用jQuery完成的,但是我无法在我创建的这个测试页面上运行简单的jQuery代码。这是页面的代码:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>

    </h:head>
    <h:body>
        <script type="text/javascript" src="js/jquery.js"></script>

        <script>

            $(document).ready(function () {
                $("p").text("The DOM is now loaded and can be manipulated.");
            });

        </script>
        <br/><br/><br/>
        <p>Not loaded yet.</p>
        <input id="pedram" type="text" onclick="alert('hi');"/>
    </h:body>
</html>

我还尝试使用CDATA标记。我还将脚本移到了文档的头部。

唯一可行的是alert()我放在onclick事件中。没有别的办法。

请告诉我我做错了什么。

3 个答案:

答案 0 :(得分:8)

变化

<script src="js/jquery.js">
        $(document).ready(function () {
            $("p").text("The DOM is now loaded and can be manipulated.");
        });
</script>

<script>
        $(document).ready(function () {
            $("p").text("The DOM is now loaded and can be manipulated.");
        });
</script>

您不需要指定两次jQuery源代码..当您在代码中使用js时也不需要

答案 1 :(得分:0)

我必须使用我的应用程序(java)的上下文路径并添加到我的jquery库地址。

 <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/js/jquery.js"></script>

答案 2 :(得分:0)

问题似乎是你将<h:body>与jQuery 1.x结合使用。

使用jQuery 2.x或<body>将解决您的问题。

jQuery 1.x可能在某个地方使用document.body,因为document.body在使用<h:body>时为空,因此失败。


如果您不介意我的问题,为什么要使用h命名空间(http://java.sun.com/jsf/html)?