【发布时间】:2013-12-12 07:41:23
【问题描述】:
http://codepen.io/leongaban/pen/dCHwI
我有一个基本的nav,li的默认图片是一个白球,选中的nav按钮有一个蓝球。
我能够获取被点击的导航按钮的 id 并将其切换为 img src。但是我无法定位它的兄弟姐妹,另一个 li 的img src :(
所以目前当你点击其他按钮时,之前的蓝色按钮会保持蓝色。
你会如何处理这个问题?
HTML
<footer id="tour_footer">
<nav>
<ul>
<li id="tour_prev">< prev</li>
<li id="tour_btn_1" class="tour_nav_circle">
<img src="http://leongaban.com/_codepen/tour_nav_blue.gif" alt="tour 1" />
</li>
<li id="tour_btn_2" class="tour_nav_circle">
<img src="http://leongaban.com/_codepen/tour_nav_white.gif" alt="tour 2" />
</li>
<li id="tour_btn_3" class="tour_nav_circle">
<img src="http://leongaban.com/_codepen/tour_nav_white.gif" alt="tour 3" />
</li>
<li id="tour_btn_4" class="tour_nav_circle">
<img src="http://leongaban.com/_codepen/tour_nav_white.gif" alt="tour 4" />
</li>
<li id="tour_next">next ></li>
</ul>
</nav>
</footer>
jQuery
var buttonStates = function(id) {
console.log('inside buttonStates function: '+id);
var $navBtn = $(id);
$navBtn.children().attr("src","http://leongaban.com/_codepen/tour_nav_blue.gif");
$navBtn.parents('li').siblings('li img').attr("src","http://leongaban.com/_codepen/tour_nav_white.gif");
console.log($(id));
}
// Button to switch Frames
$('.tour_nav_circle').unbind('click').bind('click', function (event) {
var id = this.id;
console.log(id);
buttonStates('#'+id);
});
【问题讨论】:
-
从传递给
.siblings()的选择器中删除img。当然你可以看到li元素没有img兄弟姐妹。
标签: javascript jquery dom jquery-selectors