作者JYHuang (夏天到了,冷不起来了说)
看板Ajax
标题Re: [讨论] 用JQuery去Wrap一个checkbox跟紧接的文字.
时间Tue Sep 14 10:17:11 2010
※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: <input type="checkbox" name=".."> Text
: <input type="radio" name=".."> Text
: checkbox跟radio没有相对应的dom结尾
: 加上input的下一个node是text
: JQuery对text node似乎还是无法很完全的对应
: 处理上会有点麻烦.
: 如果要用JQuery,可以做到
: 把 <input> Text 这两个元件用东西包起来(wrapAll)吗?
2F:→ JYHuang:我查不到方法来选取DOM和它接着的text node T.T09/14 09:05
今天继续查,看到了一个用传统JS的方法 " .nextSibling "
HTML:
<input type="checkbox"> Chkbox1
<input type="checkbox"> Chkbox2
<input type="checkbox"> Chkbox3
<input type="checkbox"> Chkbox4
<input type="checkbox"> Chkbox5
JS:
$(":checkbox").each(function(){
var next = $(this).get(0).nextSibling
if(next.nodeType==3){
$(next).prev().andSelf().wrapAll('<span></span>') 状况1
$(next).prev().wrap('<span></span>'); 状况2
$(next).wrap('<span></span>'); 状况3
}
})
黄蓝绿那边是
分别三种情况,而不是同时设做三个动作。
我发现一个满有趣的现像...(也或许是我nodetype判断没有完善)
状况3没有问题
状况2会发生最後一个checkbox没有被wrap
状况1头两个text Node会被乱包一通..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.168.158
4F:→ TonyQ:如果说html 你能改的话,这种需求会建议用label for 09/14 12:43
6F:→ TonyQ:你的这问题是属於比较麻烦的事情,要下点功夫避开。:~ 09/14 12:46