[英]mootools: new Element() - won't work in IE
我正在嘗試創建一堆元素並將其插入表中。 在FF和Chrome中,我的代碼工作正常,但是在IE中,當我按“插入行”按鈕時什么也沒發生。 沒有錯誤或其他任何內容:\\
我已將代碼簡化為一個簡單的示例,以嘗試查找我在做什么錯。
function insert_row(){
//get table element
var filterTable = $('table_search_filter');
//create new objects
var tr = new Element('tr');
var td1 = new Element('td');
var td2 = new Element('td');
var td3 = new Element('td');
var select_project = new Element('select', {'id':'select_secondary_' + filterCounter});
//add elements to table
td2.grab(select_project);
tr.grab(td1);
tr.grab(td2);
tr.grab(td3);
filterTable.grab(tr);
}
當我寫出tr元素innerHTML時,在FF和IE中會得到不同的結果:
FF- <td></td><td><select id="select_secondary_0"></select></td><td></td>
IE- <TD></TD><TD><SELECT id=select_secondary_0></SELECT></TD><TD></TD>
因此,看起來IE處理方式有所不同。 首先,標簽是大寫的,這不好。 其次,我的身份證沒有'字符。 為什么? 漫長的一天,我現在真的很困惑:\\
我記得有一個版本的IE,如果您的表中沒有tbody / thead元素,則不會動態創建表元素。
這可能是mootools中的錯誤。 在使用它之后,我能夠生成一個可以正常工作的腳本-注意,我只是在表中添加了一個tbody標記,並將id屬性放置在該表而不是表上。 該代碼現在可以按預期工作。 這本身不是“答案”,但對您來說可能是可行的解決方法。
JSFiddle: http : //jsfiddle.net/Brvyn/
<script type="text/javascript">
function insertRow() {
//get table element
var filterTable = $('table_search_filter');
//create new objects
var tr = new Element('tr');
var td1 = new Element('td');
td1.innerHTML = "first column";
var td2 = new Element('td');
var td3 = new Element('td');
td3.innerHTML = "third column";
var select_project = new Element('select', {'id':'select_secondary'});
//add elements to table
select_project.inject(td2);
td1.inject(tr);
td2.inject(tr);
td3.inject(tr);
tr.inject(filterTable);
return false;
}
</script>
<a href="#" onclick="return insertRow();">Fire</a>
<br /> Table:
<table>
<tbody id="table_search_filter"></tbody>
</table>
在相關說明中,我們剛剛調試了使用Mootools v1.1的腳本(不要問)-IE9似乎存在以下語法問題:
var select_project = new Element('select', {'id':'select_secondary'});
但是這樣重寫:
var select_project = new Element('select');
select_project.setAttribute('id', 'select_secondary');
...效果很好。 不知道為什么會這樣-但我認為這種觀察對某人可能有用。
PS我猜這個錯誤可能已在更高版本的Mootools中修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.