单选状态的问题

jellday 2012-05-10 03:06:09

<dl>
<dt>New South Wales</dt>
<dd><a href="javascript:void(0)" onclick="setcity('armidale',this)">Armidale</a><span></span></dd>
<dd><a href="javascript:void(0)" onclick="setcity('bathurst-orange',this)">Bathurst-Orange</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('brokenhill',this)">Broken Hill</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('centralcoastnsw',this)">Central Coast NSW</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('coffsharbour',this)">Coffs Harbour</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('cooma',this)">Cooma</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('dubbo',this)">Dubbo</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('goulburn',this)">Goulburn</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('lismore',this)">Lismore</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('newcastle',this)">Newcastle</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('portmacquarie',this)">Port Macquarie</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('southcoastnsw',this)">South Coast NSW</a></dd>
<dd><em><a href="javascript:void(0)" onclick="setcity('sydney',this)">Sydney</a></em></dd>
<dd><a href="javascript:void(0)" onclick="setcity('tamworth',this)">Tamworth</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('tweedheads',this)">Tweed Heads</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('waggawagga',this)">Wagga Wagga</a></dd>
<dd><a href="javascript:void(0)" onclick="setcity('wollongong',this)">Wollongong</a></dd>
</dl>



function setcity(city,obj){
obj.className="selected";
var div=document.createElement('span');
obj.appendChild(div);
}


想实现单选,点击哪个,哪个就显示选中的状态,后面有一个勾(通过添加一个<span>),可是现在的问题是,点完一个,点下一个的时候,前面点的不会清除状态,导致越点的多,选中状态越多,帮帮忙吧~~

...全文
67 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
d945332077 2012-05-15
  • 打赏
  • 举报
回复
$(this).next("span").html("√"); 这里改一下 改成 $(this).append("<span>√</span>")
d945332077 2012-05-15
  • 打赏
  • 举报
回复
用jquery点击a的时候后面span写一个钩钩
$("dd").children("a").cilck(function(){
$("dd").children("span").remove();
$(this).next("span").html("√");

});
乌镇程序员 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

楼上正解 但是建议用jquery 2句话搞定
[/Quote]
jQuery是方便,但为了实现非常简单的功能而去加载一个将近100KB的文件,就属于滥用了。。
d945332077 2012-05-11
  • 打赏
  • 举报
回复
楼上正解 但是建议用jquery 2句话搞定
jellday 2012-05-11
  • 打赏
  • 举报
回复
不好意思,修正一下,有效果。 后面的勾没问题。

但是前面链接当前选中和点击过的效果一样:点的越多,a的效果还是越多,没有清除点击过的a的效果。

obj.className=""; 这句应该加在哪里?
jellday 2012-05-11
  • 打赏
  • 举报
回复
1楼的没有效果啊~~

我点击后选中的效果是加在 a上的,也就是改变a的className,我修改成var o = document.getElementById('wrapper').getElementsByTagName('a') 也没有效果啊
jellday 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

楼上正解 但是建议用jquery 2句话搞定
[/Quote]

我有加载jquery1.3.2,30多k,请问怎么两句话啊?
乌镇程序员 2012-05-10
  • 打赏
  • 举报
回复
打错了:
.removeChind -> .removeChild
乌镇程序员 2012-05-10
  • 打赏
  • 举报
回复
function setcity(city,obj){
var o = document.getElementById('wrapper').getElementsByTagName('span'); //<dt id="wrapper">New South Wales</dt>
for (var i = 0; i < o.length; i ++) o[i].parentNode.removeChind(o[i]);
obj.className="selected";
var div=document.createElement('span');
obj.appendChild(div);
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧