Jquery .load()函数混淆

时间:2017-07-05 15:31:49

标签: javascript jquery html

在我的主html页面的正文中,我有<span id="someID">Something to be changed.</span>我有一个脚本,每隔一秒加载到另一页的标签$("#someID").load("otherPage.html #IDfromOtherPage");

另一方面html页面,我所拥有的唯一行是标签,例如:
<span id="IDfromOtherPage">1</span> <span id="AnotherIDfromOtherPage">2</span>
在脚本的开头,我有一个警告,alert(document.getElementByID("someID").innerHTML设置用于调试目的,在.load之前,警报说&#34;要改变的东西。&#34;,这是正确的。然后它运行.load,等待一秒然后再次运行该函数,并显示下一个警报。在第一个正确的警报之后的每个警报都说明了otherPage.html文件中的整行。警报说&#34; <span id="IDfromOtherPage">1</span>&#34;而不只是&#34; 1&#34;。

难道我做错了什么? (这些id名称和文件名只是为了让这个问题更容易理解,而不是实际的变量名称)

主html文件:

<body>
       <span id="someID">Text to change.</span>
 </body> 
 <script>
    $(document).ready(function(){
        $.ajaxSetup({ cache: false });
        setInterval(function(){
            alert(document.getElementById("someID").innerHTML);
            $("#someID").load("values.html #IDfromOtherPage");
        }, 1000);
    });
</script>

在我的其他html文件中     <span id="IDfromOtherPage">1</span> <span id="AnotherIDfromOtherPage">2</span>

1 个答案:

答案 0 :(得分:0)

documentation of jQuery load(带有片段#selector)声明:

  

插入此元素及其内容

所以innerHTML的{​​{1}}变为#someId,而不仅仅是<span id="IDfromOtherPage">1</span>,正如您所期待的那样。这解释了警报显示完整HTML片段的原因。

要查看1,请尝试以下操作:

1

这将剥离所有HTML,只使用元素中存在的文本。