jquery从url获取值然后重新排序div

时间:2013-02-26 22:02:13

标签: php jquery

我正在尝试从网址中获取参数。

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();

我什么都没得到

3 个答案:

答案 0 :(得分: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 } ?>

答案 1 :(得分: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 Juandes评论,因为他解释了发生了什么):

<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>

答案 2 :(得分:0)

可能您收到的jQuery&#39; s $尚未定义。查看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>