我有一个包含多个操作的目标网页。该操作位于默认隐藏的表行中,并在用户单击操作标题时打开。我想根据查询字符串变量控制显示/隐藏的内容。
例如,其中一个操作是“请求呼叫”。网站的其他页面上有链接请求呼叫。当用户点击该链接时,我希望他们转到目标网页,并显示“请求呼叫”一行。
答案 0 :(得分:1)
将来自this article和CMS'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不会尝试显示行。