[HTML]直接取TR屬性,IE8取得到,IE9卻是undefined

[HTML]直接取TR屬性,IE8取得到,IE9卻是undefined

前陣子幫同事看程式跑在IE9會沒有效果的問題,程式如下,

function getTableRowAttr() {
    var objTable = $("#tblRowAttr")[0];
    var objRow = objTable.rows[0];
    alert("TableRow attr1的屬性值為:" + objRow.attr1);
}

 

因為是取得TR中的屬性,以前的程式都是直接 .屬性 來取得它的值,結果在IE9卻是undefined!

image

後來改用jQuery(.attr("屬性"))來取屬性值就可以了,程式如下,

function getTableRowAttrByJQuery() {
    var objTable = $("#tblRowAttr")[0];
    var objRow = objTable.rows[0];
    var rowValue = "";
    if ($(objRow).attr("attr1") != undefined && $(objRow).attr("attr1") != "") {
        rowValue = $(objRow).attr("attr1");
    }
    alert("TableRow attr1的屬性值為:" + $(objRow).attr("attr1"));
}

 

image

建議還是透過jQuery or Ext JS這種能幫我們跨Browser的JS來幫我們搞定比較省事哦!

完整測試Code如下,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Get TableRow Attribute Value Between IE8 and IE9</title>
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
</head>
<body>
    <table id="tblRowAttr"   border="1">
        <tr attr1="myAttr1Value">
            <td>
                This is TD1 
            </td>
            <td>
                This is TD2
            </td>
        </tr>
    </table>
    <input id="btnGetTableRowAttr" type="button" value="GetTableRowAttrByDirect" onclick="getTableRowAttr()" />
    <input id="btnGetTableRowAttrByJQuery" type="button" value="GetTableRowAttrByJQuery" onclick="getTableRowAttrByJQuery()" />
    <script type="text/javascript">
        function getTableRowAttr() {
            var objTable = $("#tblRowAttr")[0];
            var objRow = objTable.rows[0];
            alert("TableRow attr1的屬性值為:" + objRow.attr1);
        }

	
        function getTableRowAttrByJQuery() {
            var objTable = $("#tblRowAttr")[0];
            var objRow = objTable.rows[0];
            var rowValue = "";
            if ($(objRow).attr("attr1") != undefined && $(objRow).attr("attr1") != "") {
                rowValue = $(objRow).attr("attr1");
            }
            alert("TableRow attr1的屬性值為:" + $(objRow).attr("attr1"));
        }
    </script>
</body>

	
</html>

 

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^