I had the same problem! I was unable to change / set the element identifier attribute. It worked in all other browsers, but not in IE. This probably doesn't apply to your problem, but here is what I ended up doing:
Background
I created a MVC tabbed jquery site. I wanted to dynamically create tabs and perform AJAX postback on the server, keeping the tab in the database. I wanted to use a unique identifier in the form of int for tabs, so I would not have to worry if the user created two tabs with the same name. Then I used a unique identifier to identify the tabs, for example:
<ul> <li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'>Remove List</span></li> <ul>
When I then implemented the delete functions on the tabs, the callback uses the index, witch is 0. Then I had no way to send a unique identifier to the server to destroy the database record. The callback for the tabremove event gives the jquery event and ui parameters. With one line of code, I could get the span id:
var dbIndex = event.currentTarget.id;
The problem was that the span tag did not have an identifier. So in the create callback I tried to set the purchase id by extracting the id from href like this:
ui.tab.parentNode.id = ui.tab.href.substring(ui.tab.href.indexOf('#list-') + 6);
This works fine in FireFox, but not in IE. So I tried a few others:
//ui.tab.parentNode.setAttribute('id', ui.tab.href.substring(ui.tab.href.indexOf('#list-') + 6)); //$(ui.tab.parentNode).attr({'id':ui.tab.href.substring(ui.tab.href.indexOf('#list-') + 6)}); //ui.tab.parentNode.id.value = ui.tab.href.substring(ui.tab.href.indexOf('#list-') + 6);
None of them work! So after several hours of testing and Googeling, I gave up and concluded that IE could not set the element identifier attribute dynamically.
I'm sorry this probably doesn't apply to your issue, but I thought I would share.
Decision
And for all of you who found this on google on a tab issue, I had what I ended up doing in the tabsremove callback to solve the problem:
var dbIndex = event.currentTarget.offsetParent.childNodes[0].href.substring(event.currentTarget.offsetParent.childNodes[0].href.indexOf('#list-') + 6);
This is probably not the sexiest solution, but he solved the problem. If anyone has any data, please share ...