2014-12-02 74 views
0

我在我的項目中使用以下標記代碼。IE 8 nextSibling屬性表現奇怪

<td> 
<A style="FONT-SIZE: small" id=MainContent_RefDataMgr_GridRegion_lblRegionName_8 title="Click to select row" onclick=javascript:OnRowClick(this); href="javascript:__doPostBack('ctl00$MainContent$RefDataMgr$GridRegion$ctl10$lblRegionName','')">test </A> 
    <INPUT id=MainContent_RefDataMgr_GridRegion_hdnRegionId_8 value=82 type=hidden name=ctl00$MainContent$RefDataMgr$GridRegion$ctl10$hdnRegionId> 
</td> 




function OnRowClick(objRow) {   
     var hdnSelectdGridRowRegionId = document.getElementById('<%=hdnGridRowSelectedRegionId.ClientID%>');   
      hdnSelectdGridRowRegionId.value = objRow.nextSibling.nextSibling.value;    

    } 

所以,如果我的錨元素包含在他的文字(測試),那麼objRow.nextSibling.nextSibling.value不工作的任何額外的空間,我必須使用objRow.nextSibling.value但在Chrome即使文本包含任何額外的空間或沒有它的正常工作。

請讓我知道這個地區可以做些什麼。

在此先感謝。

+0

使用jQuery代替跨瀏覽器支持$(objRow).next()。val(); – frosdqy 2014-12-02 07:04:30

+0

@frosdqy感謝您的回覆。目前我正在使用jquery而不是它,但我想知道原因,因爲html和dom在兩個瀏覽器中都是相同的,那麼爲什麼我必須使用兩個級別的兄弟姐妹。 – 2014-12-02 07:12:09

回答

0

在IE8中,.nextSibling(正確的,恕我直言)指的是文本節點,它緊挨着<a>

但是,文本節點沒有value

你想要.nextElementSibling

+0

感謝您的回覆,nextElementSibling在IE8中不可用。它在Ie9起可用。 – 2014-12-02 07:55:47

+1

查看http://stackoverflow.com/questions/6548748/portability-of-nextelementsibling-nextsibling – Tomalak 2014-12-02 08:03:16

+1

有一個polyfill用於http://compatibility.shwups-cms.ch/en/polyfills/?&id=81 – 2014-12-02 08:05:54