js實(shí)現(xiàn)動(dòng)態(tài)改變r(jià)adio狀態(tài)的方法
h5的radio是自帶選中狀態(tài)改變的,但是如果自帶的狀態(tài)無(wú)法滿(mǎn)足自己的需求時(shí),就需要自己去實(shí)現(xiàn)。
代碼如下:
h5部分代碼
<p class="group"> <label class="active"> <input type="radio" name="parent_radio" value="1" id="new_data" onclick="change()"/> 最新資料</label> <label> <input type="radio" name="parent_radio" value="0" id="my_data" onclick="change()"/> 我的資料</label> <label> <input name="parent_radio" type="radio" id="screen_data" value="0" onclick="change()"/> 分類(lèi)瀏覽</label> <label> <input type="radio" name="parent_radio" value="0" id="history_data" onclick="change()"/> 瀏覽歷史</label> </p>
CSS代碼
<style>
input[type="radio"] {
/*取消自帶按鈕*/
color:gray;
display: none;
}
.group>label:hover{
/*鼠標(biāo)移到控件上做的改變*/
background-color: cornflowerblue;
}
.group>label{
/*未選中狀態(tài)*/
float: left;
color: #4A4A4A;
font-size: 16px;
padding: 10px 11px;
}
.group>label.active{
/*選中狀態(tài)*/
color: #316CEB;
font-size: 16px;
border-top: 2px solid #316CEB;
padding: 10px 11px;
}
</style>
JS方法代碼
<script type = "text/javascript">
function change()
{
var radio = document.getElementsByName("parent_radio");
/*用ByName是為了取到所有的radio*/
var radioLength = radio.length;
for(var i = 0;i < radioLength;i++)
{
if(radio[i].checked)
{
radio[i].parentNode.setAttribute('class', 'active');
}else {
radio[i].parentNode.setAttribute('class', '');
}
}
}
</script>
效果如下

這里實(shí)現(xiàn)的是頂部boder的動(dòng)態(tài)顯示隱藏并且這里radio左側(cè)默認(rèn)的圓形按鈕設(shè)為了隱藏。如果想要按鈕不隱藏,需要作如下修改
<p class="group"> <label class="active"><img src="images/delate_choose.png" name="image"> <input type="radio" name="parent_radio" value="1" id="new_data" onclick="change()"/> 最新資料</label> <label> <img src="images/delate_no_choose.png" name="image"> <input type="radio" name="parent_radio" value="0" id="my_data" onclick="change()"/> 我的資料</label> <label> <img src="images/delate_no_choose.png" name="image"> <input name="parent_radio" type="radio" id="screen_data" value="0" onclick="change()"/> 分類(lèi)瀏覽</label> <label> <img src="images/delate_no_choose.png" name="image"> <input type="radio" name="parent_radio" value="0" id="history_data" onclick="change()"/> 瀏覽歷史</label> </p>
即在每一個(gè)raido類(lèi)型的input前面加一個(gè)img(注意選中和未選中的區(qū)別),JS的change方法做以下修改
var radio = document.getElementsByName("parent_radio");
var img = document.getElementsByName("image");
/*用ByName是為了取到所有的radio*/
var radioLength = radio.length;
for(var i = 0;i < radioLength;i++)
{
if(radio[i].checked)
{
img[i].src = "images/delate_choose.png";
radio[i].parentNode.setAttribute('class', 'active');
}else {
img[i].src = "images/delate_no_choose.png";
radio[i].parentNode.setAttribute('class', '');
}
}
img的length肯定和radio的length一樣,所以可以只取一個(gè)length。
效果如下:

由于自己剛學(xué)的h5,很多東西不熟練,不敢說(shuō)自己的方法就是正確方法,只是為了記錄學(xué)習(xí)過(guò)程,所以把學(xué)到的一些東西寫(xiě)在這里,望大家不吝賜教。
這篇js實(shí)現(xiàn)動(dòng)態(tài)改變r(jià)adio狀態(tài)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JS實(shí)現(xiàn)點(diǎn)擊Radio動(dòng)態(tài)更新table數(shù)據(jù)
- js實(shí)現(xiàn)的簡(jiǎn)單radio背景顏色選擇器代碼
- js實(shí)現(xiàn)表單Radio切換效果的方法
- js獲取RadioButtonList的Value/Text及選中值等信息實(shí)現(xiàn)代碼
- JS實(shí)現(xiàn)的radio圖片選擇按鈕效果
- 純JS打造網(wǎng)頁(yè)中checkbox和radio的美化效果
- javascript radio 聯(lián)動(dòng)效果
- js獲取 type=radio 值的方法
- 利用JavaScript更改input中radio和checkbox樣式
- 原生javascript自定義input[type=radio]效果示例
相關(guān)文章
原生JS版和jquery版實(shí)現(xiàn)checkbox的全選/全不選/點(diǎn)選/行內(nèi)點(diǎn)選(Mr.Think)
腳本之家小編之前整理不少checkbox全選全不選這方便的文章,但看了這篇以后發(fā)現(xiàn)實(shí)現(xiàn)方法更好2016-10-10
詳解JavaScript中Generator函數(shù)的使用
Generator 是 ES6 新增的一種函數(shù)類(lèi)型,這篇文章主要來(lái)和大家詳細(xì)聊聊Generator函數(shù)的具體用法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-06-06
JS中的算法與數(shù)據(jù)結(jié)構(gòu)之集合(Set)實(shí)例詳解
這篇文章主要介紹了JS中的算法與數(shù)據(jù)結(jié)構(gòu)之集合(Set),結(jié)合實(shí)例形式詳細(xì)分析了javascript中集合的概念、原理、定義及相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
JS面試高頻單線(xiàn)程與事件循環(huán)深入解析
JavaScript是一種單線(xiàn)程語(yǔ)言,它在任何給定時(shí)間只能執(zhí)行一個(gè)任務(wù),然而js確能夠處理異步操作,這得益于其事件循環(huán)(Event Loop)機(jī)制,今天這篇文章帶領(lǐng)大家深入理解JavaScript單線(xiàn)程特性,以及講解事件循環(huán)和js多線(xiàn)程知識(shí)2023-10-10
scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條并分頁(yè)顯示(zepto.js)
這篇文章主要為大家詳細(xì)介紹了scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條并分頁(yè)顯示示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
js中 計(jì)算兩個(gè)日期間的工作日的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇js中 計(jì)算兩個(gè)日期間的工作日的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
利用javascript實(shí)現(xiàn)禁用網(wǎng)頁(yè)上所有文本框,下拉菜單,多行文本域
這篇文章主要介紹了利用javascript實(shí)現(xiàn)禁用網(wǎng)頁(yè)上所有文本框,下拉菜單,多行文本域。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12

