【发布时间】:2017-01-06 11:55:31
【问题描述】:
我有很多页面列出了这样的课程:
<div class="et_pb_module">Page Title</div>
<div class="insert-after"></div>
<div class="lesson-container">
<div class="et_pb_module">
<div class="content">
Lesson 1
</div>
</div>
<div class="et_pb_module">
<div class="content">
Lesson 2
</div>
</div>
<div class="et_pb_module">
<div class="content">
Lesson 3
</div>
</div>
<div class="et_pb_module">
<div class="content">
Lesson 4
</div>
</div>
</div>
如果 URL 的查询字符串中调用了特定课程,我希望只在页面上显示该课程:
例如foo.com/lessons?lesson1 应该只显示“第 1 课”
我在 jQuery 中有一个 IF 语句可以做到这一点:
if (window.location.href.indexOf("?lesson1") > -1) {
$('.et_pb_module').hide();/*Hide all lessons*/
$('.lesson-container .et_pb_module:nth-of-type(2) .content ').insertAfter('.insert-after'); /*Select content from first lesson and place it at top of the page after 'insert-after'*/
}
这很好用,但是每次创建大量重复代码时,我都必须将上面的内容删减九次,更新查询字符串和:nth-of-type 选择器。
有没有办法可以使用数组来压缩这个过程?
感谢您的任何反馈。
【问题讨论】:
-
那么你为什么不只使用一个查询字符串并有一个值来表示具有匹配它的类或 id 的部分并显示它呢?
?lesson=lesson1比阅读课程获得价值,而不是选择那个。
标签: jquery query-string