0

例如,我正在尝试从 url 中获取参数。

www.x.com/?source=display&zone=lc&topic=cloud

所以,如果主题是“云”,那么我想重新订购 3 个单独的 div。

到目前为止,这是我在标题中的内容:

<script type="text/javascript">
if (window.location.search.indexOf('topic=cloud') > -1) {
    alert('track present');
    $(".one").insertAfter(".two");
} else {
    $(".two").insertAfter(".three");
    alert('track not here');
}
</script>

和html是这样的:

<div class="one">seo</div>
<div class="two">cloud</div>
<div class="three">social</div>

我收到警报,但是当我使用.insertAfter();

我什么也得不到

4

3 回答 3

2

如果您也可以使用 PHP - 并且根据您的标签可以 - 我更喜欢在 PHP 中执行此操作,因此不需要客户端操作。基本上:

<?php if (isset($_GET['topic']) && 'cloud' == $_GET['topic']) { ?>
    <div class="one"></div>
    <div class="two">cloud</div>
    <div class="three">social</div>
<?php } else { ?>
    <div class="one">seo</div>        
    <div class="three">social</div>
    <div class="two">cloud</div>
<?php } ?>
于 2013-02-26T22:08:17.677 回答
2

使用准备好的文档,您的代码将执行您的预期:

<script type="text/javascript">
$(function() { //<-- you are missing this

if (window.location.search.indexOf('topic=cloud') > -1) {
    alert('track present');
    $(".one").insertAfter(".two");
} else {
    $(".two").insertAfter(".three");
    alert('track not here');
}

}); // <-- and the closing element
</script>

以下工作正常,试一试,看看它与您的代码相比如何(也请阅读 Juan Mendes 评论,因为他解释了正在发生的事情):

<html>
<head>
  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <script>
    $(function() {  
        if (window.location.search.indexOf('topic=cloud') > -1) {
            alert('track present');
            $(".one").insertAfter(".two");
        } else {
            $(".two").insertAfter(".three");
            alert('track not here');
        }    
    });
  </script>
</head>
<body>
  <div class="one">seo</div>
  <div class="two">cloud</div>
  <div class="three">social</div>
</body>
</html>
于 2013-02-26T22:08:29.147 回答
0

可能您收到与$尚未定义的 jQuery 相关的错误。查看 FireBug 或 Web Developer 工具进行检查。直到该行,您还没有引用 jQuery $,因此不会引发错误。

可能性 1:确保页面中包含 jQuery。

如果是本地的,则如下所示:

<script type="text/javascript" src="js/jquery.js"></script>

如果使用 CDN(托管)版本,则如下所示:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

可能性 2:确保在引用之前包含 jQuery $。将您的<script>包含移到脚本的其余部分之上。

可能性 3:如果您正在使用另一个库,例如 Prototype,请jQuery直接引用(而不是$):

<script type="text/javascript">
if (window.location.search.indexOf('topic=cloud') > -1) {
    alert('track present');
    jQuery(".one").insertAfter(".two"); // note jQuery, not $
} else {
    jQuery(".two").insertAfter(".three"); // note jQuery, not $
    alert('track not here');
}
</script>
于 2013-02-26T22:06:31.873 回答