2016-08-01 2 views
0

選択肢に値をロードするための文字列「GlobalObject」があります。次のコードはChromeでは正常に動作しますが、IE 11では動作しません。それは、その後、IE11でそれ以降は何も最初OPTGROUPを挿入しないとオプトグループの動作がChromeよりもIEよりも

14000 // OPTGROUP など

for(var i = 1; i < GlobalObject[0].length; i++) { 
    var opt = GlobalObject[0][i]; 
    var subString = opt.substring(opt.length - 4, opt.length); 

    if (i != GlobalObject[0].length -1) { 
    var opt2 = GlobalObject[0][i+1]; 
    var subString2 = opt2.substring(opt2.length - 4, opt2.length); 
    } 
    else {} 


    if (subString != "0000") { 
    var el = document.createElement("option"); 
    el.textContent = "\u00A0" + "\u00A0" + "\u00A0" + "\u00A0" + "\u00A0" + opt; 
    el.value = opt; 
    newOptGroup.appendChild(el); 
    } 

    else { 

    var newOptGroup = document.createElement("OPTGROUP"); 
    newOptGroup.label = opt; 
    newOptGroup.value = opt; 
    } 

    if (subString2 == "0000" || i == GlobalObject[0].length-1) { 
    console.log("here"); 
    ChannelList.add(newOptGroup); 

    } 
    } 

:のような文字列が注文されています。次のコードで固定

+0

あなたは 'option'sと' optgroup'sを混ぜます。 'optgroup'が起動した場合は' select'要素ではなく 'option'sを追加する必要があります。 –

+0

@Alex Kudryashev javascriptでoptgroupにオプションを追加する構文は何ですか? – IntegrateThis

+0

この例を参照してください。http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_optgroup_create –

答えて

1

これは実施例です。私はあなたにそれを適応させることを願っています。

<button onclick="myFunction()">Try it</button> 

<select id="mySelect" size="6"> 
</select> 

<script> 
var arr=['1111'/*not optgroup*/,'0123'/*optgroup*/,'1234','2345','0567','5678','6789']; 
function myFunction() { 
    var x = document.getElementById("mySelect"); 
    var gr = null;//future optgroup 
    for(var i=0,n=arr.length;i<n;i++){ 
     if(arr[i].indexOf('0')==0){//starts with 0 - optgroup 
     gr = document.createElement("OPTGROUP"); 
     gr.label = arr[i]; 
     x.appendChild(gr); 
     } 
     else { 
     var op = document.createElement("option"); 
     op.textContent = arr[i]; 
     op.value = arr[i]; 
     if(gr)//optgroup exists 
      gr.appendChild(op); 
     else //optgroup not exists 
      x.appendChild(op); 
    } 
    }//for 
}//myFunction 
</script> 

var arr=['1111','0123','1234','2345','0567','5678','6789']; 
 
function myFunction() { 
 
    var x = document.getElementById("mySelect"); 
 
    var gr = null; 
 
    for(var i=0,n=arr.length;i<n;i++){ 
 
     if(arr[i].indexOf('0')==0){ 
 
     gr = document.createElement("OPTGROUP"); 
 
     gr.label = arr[i]; 
 
     x.appendChild(gr); 
 
     } 
 
     else { 
 
     var op = document.createElement("option"); 
 
     op.textContent = arr[i]; 
 
     op.value = arr[i]; 
 
     if(gr) 
 
      gr.appendChild(op); 
 
     else 
 
      x.appendChild(op); 
 
    } 
 
    } 
 
}
<button onclick="myFunction()">Try it</button> 
 

 
<select id="mySelect" size="6"> 
 
</select>

0

OK問題:

for(var i = 1; i < GlobalObject[0].length; i++) { 
    var opt = GlobalObject[0][i]; 
    var subString = opt.substring(opt.length - 4, opt.length); 

    if (i != GlobalObject[0].length -1) { 
    var opt2 = GlobalObject[0][i+1]; 
    var subString2 = opt2.substring(opt2.length - 4, opt2.length); 
    } 
    else {} 


    if (subString != "0000") { 
    var el = document.createElement("option"); 
    el.textContent = "\u00A0" + "\u00A0" + "\u00A0" + "\u00A0" + "\u00A0" + opt; 
    el.value = opt; 
    newOptGroup.appendChild(el); 
    } 

    else { 

    var newOptGroup = document.createElement("OPTGROUP"); 
    newOptGroup.label = opt; 
    newOptGroup.value = opt; 
    } 

    if (subString2 == "0000" || i == GlobalObject[0].length-1) { 
    console.log("here"); 
    ChannelList.appendChild(newOptGroup); 

    } 
    } 
関連する問題