2015-09-26 31 views
1

的作品我有這樣定義的<textarea>在Internet Explorer中有麻煩的元素 - 在Chrome,火狐

<textarea class="form-control notetext" id="{{this._id}}-notetext" name="notetext">{{this.text}}</textarea> 

我使用Ajax來發送數據和裝載的部分網頁。

然後我嘗試找到<textarea>並將結果列出到控制檯。

問題是elements[0]在Internet Explorer 11中返回undefined(還沒有嘗試過任何其他版本),但在Chrome和Firefox中正常工作。我已經嘗試了3種變體,都給出了相同的結果。有解決方案嗎?

$.get('/page/' + Id + '/partial/', function(res) { 
    $('#sectional').html(res); 

    //variation 1 
    var elements = document.getElementsByClassName('notetext'); 

    //variation 2 
    var elements = document.querySelectorAll('.notetext'); 

    //variation 3 
    var elements = document.getElementsByTagName("textarea"); 
}); 

此外,請注意,id是動態創建的,所以無法.getElementById(這將只返回1個結果而不是數組的)。我在某個地方看到了一個有上使用正則表達式的方法,但它也返回null。

+0

嘗試在一個'setTimeout()'回調中獲取元素,並使用一些類似於100的小超時。 –

+0

所以'elements'是'[null]'? – borisdiakur

+0

@MaratTanalin:好主意。我試過了,但即使在等待1000毫秒後仍然未定義。 – lynvie

回答

1

...事實證明,它畢竟是在IE11中工作。我最初使用的是getElementsbyName,它在IE11中無法正常工作(取而代之)。所以我將它改爲上面列出的變體,這些都給出了相同的錯誤結果。但是,我退出並重新啓動瀏覽器後,代碼運行良好。我不確定是否可以在IE中的某個位置更改設置,這樣不會再發生?

相關問題