如何根据查询字符串变量使用Jquery show()hide()表行?

时间:2009-08-12 15:25:11

标签: jquery

我有一个包含多个操作的目标网页。该操作位于默认隐藏的表行中,并在用户单击操作标题时打开。我想根据查询字符串变量控制显示/隐藏的内容。

例如,其中一个操作是“请求呼叫”。网站的其他页面上有链接请求呼叫。当用户点击该链接时,我希望他们转到目标网页,并显示“请求呼叫”一行。

2 个答案:

答案 0 :(得分:1)

将来自this articleCMS's excellent answer的大量内容改为similar question

使用名为showRow的查询字符串变量并将其传递给要显示的行的id(不是非常复杂但是一个很好的起点)。

使用jQuery显示请求的行:

<table>
  <thead>
    <tr>
        <th>col 1</th>
    </tr>
  </thead>
  <tbody>
    <tr id="row1" style="display: none;">
      <td>this is row 1</td>
    </tr>
    <tr id="row2" style="display: none;">
      <td>this is row 2</td>
    </tr>
  </tbody>
</table>

<script type="text/javascript">
    $(document).ready(function() {
        var row = getQueryString()["showRow"];
        if (row !== undefined) $("table tr#" + row + "").show();
    });

    getQueryString = function() {
        var assoc = [];
        var keyValues = unescape(location.search.substring(1)).split('&');
        for (var i in keyValues) {
            var key = keyValues[i].split('=');
            assoc[key[0]] = key[1];
        }
        return assoc;
    }
</script>

答案 1 :(得分:0)

您是否可以进行一些服务器端处理以生成必要的处理?即使用RAW PHP,因为您没有说明您可以使用的服务器端语言:

<?
$showRow = "";
switch($_GET['title'])
{
   case "call":
   //$showRow is the id of the row to be shown
   $showRow ="call"
   break;
}
?>

...rest of page....

<script type="text/javascript">
   $(document).ready(function() {
    //show the row
    $("#<?=$showRow;?>").show();
   });
</script>

您还可以将行的id设置为URL参数,以减少对切换的需求。您还需要进行一些空测试,以确保如果未显示URL参数,jquery不会尝试显示行。