我有这段代码
<ul>
<li><a href="index.php">Web Development</a></li>
<span data-landing_count="1">
<li class="subli"><a href="1.html">E-shop</a></li>
<li class="subli"><a href="2.html">Prezentations</a></li>
<li class="subli"><a href="3.html">Custom CMS</a></li>
<li class="subli"><a href="4.html">WordPress & Joomla!</a></li>
<li class="subli"><a href="5.html">Web apps</a></li>
<li class="subli lastsl"><a href="index-b.html">Design</a></li>
</span>
<li><a href="6.html">E-courses</a></li>
<span data-landing_count="2">
<li class="subli"><a href="7.html">Design & Graphics</a></li>
<li class="subli lastsl"><a href="8.html">Web Development</a></li>
</span>
<li><a href="9.html">SEO</a></li>
<span data-landing_count="3">
<li class="subli"><a href="91.html">On-page SEO</a></li>
<li class="subli"><a href="92.html">W3C validation</a></li>
<li class="subli"><a href="93.html">Linking</a></li>
<li class="subli lastsl"><a href="94.html"><img src="img/star.png" alt="star" width="12" class="star">Copywriting</a></li>
</span>
<li data-landing_count="4"><a href="95.html">Web hosting</a></li>
<li data-landing_count="5"><a href="96.html"><img src="img/star.png" alt="star" width="12" class="star">Pricing</a></li>
<li data-landing_count="6"><a href="97.html">Contact us</a></li>
</ul>
有3个跨度,我现在可以通过.first()定位第一个,使用.last()定位最后一个。但是我如何针对中间人呢?
感谢您的回复
答案 0 :(得分:6)
您可以使用:
$('span').eq(1);
使用eq()
方法或选择器:
$('span:eq(1)');
或者:
$('span').slice(1,-1);
请注意,您的HTML无效:可以包含li
元素的唯一元素是ul
或ol
。
参考文献:
答案 1 :(得分:2)
$('ul span').not(':first,:last');
请注意您的HTML完全被破坏。你应该首先学习HTML ,因为这只会导致神秘的问题和DownVoted StackOverflow问题。
li
只能是ul
或ol
的孩子。此外,ul
和ol
只能将li
作为孩子。您无法按照自己的方式将span
放在HTML中。
答案 2 :(得分:0)
你可以用以下方法修复它:
.eq(1)
它应该有用。
如果你想获取所有元素,当你从secound on迭代到pre-end元素时,可以使用for
;
答案 3 :(得分:0)
首先,您的HTML BAD 。不要在<span>
标记之间放置<li>
个标记。只会在灾难中结束。
其次,您是否针对这些提供不同的风格?如果是这样,那么为什么不使用css :first-child
和:last-child
选择器。这样你可以设计第一个和最后一个而不是两者之间的样式。