我想从以下网址获取网址参数并提取最后一个参数:
http://localhost/projecct/Menus/page/8
这给了我8
:
var url = window.location.toString();
var pid = url.substring(url.lastIndexOf('/') + 1); // this gives 8
var currentMenu=('menu'+pid); //this gives menu8
alert($('.'+currentMenu).html()); //but this give me null
//the above line is where I stucked
我想为所有选定的display:block
的父级设置CSS属性ul
:
$('.'+currentMenu).parents("ul").css({'display':'block'});
HTML:
<ul>
<li class='menu1'>
<a href='#'>Menu1</a>
<ul>
<li class='menu11'>
<a href='#'>Menu11</a>
<ul>....</ul>
</li>
</ul>
</li>
<li class='menu2'>
<a href='#'>Menu2</a>
<ul>
<li class='menu21'>
<a href='#'>Menu21</a>
<ul>....</ul>
</li>
<li class='menu22'>
<a href='#'>Menu22</a>
<ul>....</ul>
</li>
</ul>
</li>
<li class='menu3'>
..........
</li>
</ul>
答案 0 :(得分:2)
问题是在代码运行时,页面上没有.menu8
元素。这可能是因为它还没有尚未,或者因为你根本没有在页面上放置一个。
如果此代码在页面加载时运行,并且您确实在HTML中定义了具有类menu8
的元素,那么将该代码移动到页面底部的script
标记中您的DOM元素已经定义,以便在代码运行时它们就在那里。
,例如,这将失败:
<script src="yourcode.js"></script>
<!-- ... -->
<li class="menu8"></li>
但这会奏效:
<li class="menu8"></li>
<!-- ... -->
<script src="yourcode.js"></script>
这是通常建议的一个原因,除非您有充分的理由不这样做,请将您的脚本放在页面底部,紧接在结束</body>
标记之前。
(如果您的代码稍后添加了.menu8
元素,那么您必须在添加之后使用运行代码。)
如果您无法控制script
元素的去向,那么您可以将代码包装在&#34; ready&#34;处理程序:
$(document).ready(function() {
// your code here
});
或其快捷版:
$(function() {
// your code here
});
但如果您控制script
代码的去向,就没有必要。