r = r.replace(/<TR><TD><\/TD><\/TR>/gi, rider_html);
...在IE中不起作用,但在所有其他瀏覽器中起作用。IE正在更新中,請稍候...正則表達式替換
任何意見或方案?
r = r.replace(/<TR><TD><\/TD><\/TR>/gi, rider_html);
...在IE中不起作用,但在所有其他瀏覽器中起作用。IE正在更新中,請稍候...正則表達式替換
任何意見或方案?
我來的變量R不能有它,你期待,因爲正則表達式替換應正常工作,如果確實有匹配值的結論。您可以在this jsFiddle中看到,如果「r」實際上與它匹配,則替換工作正常。
這是從小提琴的代碼並將其顯示在IE中適當的更換。
var r = "aa<TR><TD></TD></TR>bb";
var rider_html = " foo ";
r = r.replace(/<TR><TD><\/TD><\/TR>/gi, rider_html);
alert(r);
所以,我們真的不能走得更遠不知道是什麼的「R」的值和診斷從哪裏來或瞭解更具體的瞭解,你在運行IE的版本的東西(在這種情況下,你可以自己試試那個版本的小提琴)。
如果R從文件的HTML來了,然後在其上字符串匹配是一件壞事,因爲IE不保留原有的HTML左右。相反,從解析頁面需要時重新組成它,它把一些事情在不同的順序(如屬性),不同的或沒有引號的屬性,不同資本,不同的間距,等等
您不應該使用'innerHTML'添加表格結構。 – lonesomeday
是的,我通常不會因爲很多原因而使用表格。我已經在不同的方向編輯我的文章,因爲原始文章真的只是顯示字符串操作,而不是DOM操作。 – jfriend00
你可以做這樣的事情:
var rows = document.getElementsByTagName('tr');
for (var i = 0; i < rows.length; i++) {
var children = rows[i].children;
if (children.length === 1 && children[0].nodeName.toLowerCase() === 'td') {
children[0].innerHTML = someHTMLdata
}
}
注意,這將表格單元格的值,而不是替換整行。如果你想做其他的事情,你必須使用DOM方法而不是innerHTML
,並確切地指定你真正想要的。
是什麼'r'樣子? – alex
*「在IE中不起作用」*是什麼意思?什麼「不起作用」?使用正則表達式在**瀏覽器中處理HTML似乎......很奇怪。爲什麼不將HTML轉換爲DOM?這是超級容易在瀏覽器中...... –
[你不能解析(X)HTML使用正則表達式(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained標籤都有效/ 1732454#1732454)。在瀏覽器中這樣做是沒有意義的。只需使用DOM(或由jQuery提供的封裝)即可。 – You