DOM - JavaScript Changing selected option in select

The following JavaScript convert something like

<span id="container">
    <span id="data">
        some data
    </span>
</span>

to
<span id="container">
    <select id="data" name="selectName">
        <option value="defined by user">defined by user</option>
        <option value="defined by user">defined by user</option>
    </select>
</span>

My problem is after making the options elements, I want to select the one who fit nodeText... It works in Firefox but not in IE... HOW DO I CHANGE THE SELECTION IN IE !!! ???
function TransformToSelect(nodeName, selectName, selectId, options)
{
    var nodeToRemove = document.getElementById(nodeName);
    var nodeText = nodeToRemove.textContent;
    var parentNode = nodeToRemove.parentNode;
 
    if (nodeToRemove != null && parentNode != null)
    {
        RemoveNode(nodeName);
 
        var container = document.createElement("span");
        container.id = nodeName;
 
        var select = document.createElement("select");
        select.name = selectName;
        select.id = selectId;
 
        var selIndex = 0;
 
        for (var i = 0; i < options.length; i++)
        {
            var currentOption = document.createElement("option");
 
            try
            {
                select.add(currentOption); //IE
            }
            catch (ex)
            {
                select.add(currentOption, null); //Firefox et autres
            }
            
            currentOption.value = options[i][0];
            currentOption.text = options[i][1];
            if (currentOption.text == nodeText)
                currentOption.selected = true;
        }
 
        parentNode.appendChild(container);
        container.appendChild(select);
    }    
}

Open in new window

mychel_normandeauAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Sinoj SebastianConnect With a Mentor CTO & OpenERP Project managerCommented:
>> What is the IE equivalent of textContent ?
for IE "innerText"
0
 
mychel_normandeauAuthor Commented:
The problem comes from:

var nodeText = nodeToRemove.textContent;

which works in FF but not in IE... What is the IE equivalent of textContent ? innerHTML does not suit me since I can have things like <b> or <i> into innerHTML...
0
 
mychel_normandeauAuthor Commented:
Yeah, I figured that out... My final solution is:

    var nodeText;
    if (document.all)
       nodeText = nodeToRemove.innerText; //IE
    else
       nodeText = nodeToRemove.textContent; //Firefox et autres
0
2018 Annual Membership Survey

Here at Experts Exchange, we strive to give members the best experience. Help us improve the site by taking this survey today! (Bonus: Be entered to win a great tech prize for participating!)

 
Sinoj SebastianCTO & OpenERP Project managerCommented:
try it like this

 var nodeText  = ""
if(document.all){
   nodeText  = nodeToRemove.innerText ;
} else{
   nodeText = nodeToRemove.textContent;
}
0
 
Sinoj SebastianCTO & OpenERP Project managerCommented:
wow..
The same solution :)
0
 
mychel_normandeauAuthor Commented:
Hehe yes :)
0
All Courses

From novice to tech pro — start learning today.