日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js动态添加options(转载)

發(fā)布時(shí)間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js动态添加options(转载) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JS動(dòng)態(tài)添加Option的幾種方式

在處理表單的時(shí)候,經(jīng)常會(huì)有這樣的需求:給定一定的數(shù)據(jù)來生成某個(gè)select的option,或者更進(jìn)一步,某些option或許預(yù)先選中或者有高亮顯示。

下面我們就來溫習(xí)一下幾種option的創(chuàng)建方式。這個(gè)需求要求某些選項(xiàng)要預(yù)先有高亮顯示,可以通過添加class來處理。

首先定義一個(gè)高亮的class,為了簡單處理,只定義紅色高亮:

<style type="text/css">
.hot
-games{
background
-color: #f00;
}
</style>

然后預(yù)先定義一些用來生成選項(xiàng)的數(shù)據(jù):

<script type="text/javascript">
var gameOptions = {
"options" : [
{
"name" : "魔獸世界",
"value" : "50007361",
"isHot" : "false"
},
{
"name" : "龍之谷",
"value" : "50007937",
"isHot" : "false"
},
{
"name" : "永恒之塔",
"value" : "50007385",
"isHot" : "true"
},
{
"name" : "奇跡世界",
"value" : "50007800",
"isHot" : "false"
}
]
};
</script>

這里是select元素,需要制定id和name屬性:

<select id="cat" name="cat" style="width:130px;"></select>

大致有三種方案可以增加option,一種是通過new Option() 構(gòu)造函數(shù),第二種是通過select.add()函數(shù),第三種是通過增加innerHTML。下面比較一下三種方式的異同:

首先獲取到select元素:

var gameCat = document.getElementById('cat');

第一種方案,通過new Option()構(gòu)造函數(shù),該函數(shù)屬0級(jí)DOM,所有瀏覽器都支持:

// 方案1:new Option()構(gòu)造函數(shù)
for(var i=0, j=gameOptions.options.length; i<j; i++){
gameCat.options[i]
= new Option(gameOptions.options[i].name, gameOptions.options[i].value);
if(gameOptions.options[i].isHot == 'true'){
gameCat.options[i].className
= 'hot-games';
}
}

new Option(text, value)第一個(gè)參數(shù)為顯示的文字,第二個(gè)為value值,如果想設(shè)置其他屬性需要單獨(dú)操作。

第二種方案,通過document.createElement()來創(chuàng)建選項(xiàng),然后再設(shè)置選項(xiàng)的屬性。在這里w3c標(biāo)準(zhǔn)是可以設(shè)置option的 label屬性即為顯示文本,但事實(shí)證明FF并不支持,只是給option增加了一個(gè)label屬性。而w3c中定義的readonly的屬性text,在FF中卻可以設(shè)置。那么是否需要判斷瀏覽器類型呢?當(dāng)然不用,該方案代碼如下:

// 方案2:add()
for (var i = 0, j = gameOptions.options.length; i < j; i++) {
var option = document.createElement('option');

try{
// 二級(jí)DOM中該屬性為readonly,但FF確可寫,且可顯示為選項(xiàng)內(nèi)容
option.text = gameOptions.options[i].name;
}
catch(e){
// IE支持label,可以直接顯示為選項(xiàng)的文字
option.label = gameOptions.options[i].name;
}

option.value
= gameOptions.options[i].value;
option.className
= (gameOptions.options[i].isHot == 'true') ? 'hot-games' : '';

// 如果不傳第二個(gè)參數(shù),FF下會(huì)報(bào)錯(cuò)
gameCat.add(option, null);
}

這里要注意的add()函數(shù)的第二個(gè)參數(shù),該參數(shù)為before,可以指定選項(xiàng)插到哪個(gè)選項(xiàng)之前,如果為null則插到最后。如果不指定這個(gè)參數(shù)在IE系不會(huì)有問題,FF下會(huì)報(bào)錯(cuò),提示Not enough arguments,參數(shù)不足,所以最好傳個(gè)null先。

第三種方案,比較少用于select元素上,IE下是無效的,但是動(dòng)態(tài)添加其他元素的孩子時(shí)經(jīng)常用到。當(dāng)然也可以設(shè)置元素屬性后 appendChild(),同方案二。這里要先把select隱藏掉,這樣可以減少瀏覽器重繪次數(shù),對于display='none'的元素的操作不會(huì)引起重繪或回流。再改變完之后再顯示出來:

// 方案3:innerHTML
//
IE無效,FF可用
gameCat.style.display = 'none';
for (var i = 0, j = gameOptions.options.length; i < j; i++) {
var isHot = (gameOptions.options[i].isHot == 'true') ? ' ' : '';
gameCat.innerHTML
+= '<option value='+gameOptions.options[i].value+isHot+'>'+gameOptions.options[i].name+'</option>';
}
gameCat.style.display
= 'block';

這三種方式最常用的就是第一種了,沒有兼容性問題,其他兩種只是在此作為例子,展示創(chuàng)建option的方法。

轉(zhuǎn)自:http://www.cnblogs.com/jiguang/articles/1894642.html

轉(zhuǎn)載于:https://www.cnblogs.com/johnwonder/archive/2011/03/19/1988784.html

總結(jié)

以上是生活随笔為你收集整理的js动态添加options(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91久久综合亚洲鲁鲁五月天 | 国产18p| 9999精品| 国产精品12p | 桃色成人| 日韩不卡一区二区 | 乱子伦一区 | 九色91av| 欧美精品一区二区不卡 | 97人妻人人澡人人爽人人精品 | 亚洲av无码国产精品久久 | 亚洲国产果冻传媒av在线观看 | 久久久久久久久99精品 | 黄色片久久 | 91免费成人 | 午夜亚洲 | 99久久精品一区二区三区 | 波多野结衣精品视频 | 超碰夜夜 | 国产免费麻豆 | 拔擦8x成人一区二区三区 | 夜夜看av| 少妇粉嫩小泬喷水视频www | 国产精品久久久久久久专区 | 日韩一级中文字幕 | 久久成人a| 日本三级韩国三级三级a级中文 | 狼人av在线 | 手机天堂网 | 日本视频在线播放 | 高跟鞋av| 黑人操亚洲女 | 国产96在线 | 亚洲 | 欧美中字 | 狂野欧美性猛交blacked | 欧美亚洲另类在线 | 日韩视频在线观看一区二区 | 国产精品伦一区二区 | 国产无遮挡又黄又爽又色视频 | 久久久www成人免费无遮挡大片 | 69视频污 | 国产又爽又色 | 天天干狠狠干 | 日韩一区二区在线免费观看 | 国产成人精品一区二区 | 亚洲乱码国产乱码精品 | 美日韩在线视频 | 99在线国产 | 黄色片美女 | 日韩a∨ | sao虎视频在线精品永久 | 欧美成人福利视频 | 日本资源在线 | 亚洲国产精品va在线 | 成人无码av片在线观看 | 杏导航aⅴ福利网站 | 欧美午夜精品久久久久免费视 | 毛片基地视频 | 亲吻刺激视频 | 在线观看成人av | 精品国产午夜福利 | 久久久久久久九九九九 | 五月天婷婷在线播放 | 深爱五月激情五月 | 激情在线视频 | 青青插| 国产肥老妇视频 | 亚洲一区国产精品 | 欧美与黑人午夜性猛交久久久 | 天天综合网久久 | 一级片大片 | 亚洲高清在线观看视频 | av鲁丝一区鲁丝二区鲁丝三区 | 密乳av | 人妻av中文系列 | 中文文字幕一区二区三三 | 欧美日韩一区精品 | 91精品国产91久久久久久吃药 | 国产xxxx18 | 天天干狠狠爱 | 久草电影在线 | 青青草婷婷 | 天天综合欧美 | 午夜视频日韩 | 黄av资源 | 青青草av | 亚洲爱爱网站 | www.youjizz.com中国| 成人午夜网站 | 欧美成人自拍视频 | 天天操夜夜干 | 99热精品在线播放 | www.久久成人| 国产日产亚洲精品 | 美女一级| 日本少妇激情视频 | 99插插插| 久久99精品久久久久久琪琪 | 成人久久久精品乱码一区二区三区 |