2010-11-03 214 views
1

我試圖添加一些文本到一個div內的一些跨度很簡單,但我不能爲我的生活得到這個在IE中工作。它適用於Chrome,Safari和Firefox。jQuery .text()和.innerHTML在IE中不工作

繼承人的jQuery的:

$("div#dateRanges #startDate").text(typeValues.dateRanges[1][0]); 
$("div#dateRanges #endDate").text(typeValues.dateRanges[1][1]); 

和繼承人的HTML數據我編輯:使用jQuery來獲取元素,然後嘗試設置.innerHTMl也沒」

<div id="dateRanges"> 
    <span id="startDate"></span> 
    <span id="endDate"></span> 
</div> 

工作。

var startDate = $("div#dateRanges #startDate").first(); 
startDate.innerHTML = typeValues.dateRanges[1][0]; //Sets the text date values 
var endDate = $("div#dateRanges #endDate").first(); 
endDate.innerHTML = typeValues.dateRanges[1][1];enter code here 

只是爲了消除潛在的困惑,它是設置我遇到麻煩的跨度文本。另外,在頁面加載之後通過AJAX包含這些數據正在更新的信息可能很重要。

+0

jQuery保證可以在所有常見的瀏覽器中工作,所以你的第一個代碼示例應該工作得很好。 (或者也許你想用'html()'代替。)你確定'typeValues.dateRanges [1] [0]'包含你認爲它的作用嗎? – kijin 2010-11-03 05:27:22

+0

嘗試使用IE8中的開發人員工具來遍歷代碼。我經常在IE上發現更好的調試信息。 – jellyfishtree 2010-11-03 05:30:49

+0

類型值是格式爲「Month Year」的日期字符串我也這麼認爲,這就是爲什麼當這種情況發生時我很驚訝... – Joshkunz 2010-11-03 05:32:15

回答

1

對於第二個,您需要獲取原始DOM元素。你可以用[0].get(0)

var startDate = $("div#dateRanges #startDate")[0]; 
var endDate = $("div#dateRanges #endDate")[0]; 

也許,text作品做到這一點,但你希望它改爲被作爲HTML處理。我想你可以使用html而不是在這裏:

$("div#dateRanges #startDate").html(typeValues.dateRanges[1][0]); 
$("div#dateRanges #endDate").html(typeValues.dateRanges[1][1]); 
+0

var startDate = $(「div#dateRanges #startDate」)[0] ; 給我一個undefined – Joshkunz 2010-11-03 05:27:09

+0

文本不起作用,也沒有html – Joshkunz 2010-11-03 05:27:33

+1

這隻意味着沒有匹配該選擇器的元素。如果你想匹配元素而不管它的祖先是什麼,你可以試試'$(「#startDate」)'。 – 2010-11-03 05:40:31

1

試試下面的代碼,並確保typeValues.dateRanges不爲空。

var startDate = $("div#dateRanges #startDate"); 
startDate.html(typeValues.dateRanges[1][0]); //Sets the text date values 
var endDate = $("div#dateRanges #endDate"); 
endDate.html(typeValues.dateRanges[1][1]); //enter code here 
+0

@Joshkunz:startDate.html(「Hai」) - >如果Hai會重新生成span的Html,那麼這將是typeValues.dateRanges.Pls的問題。 – kbvishnu 2010-11-03 07:15:18

0

顯然這樣做的原因是,jQuery的$('#foo')方法返回一個對象,而不是元件。有一個關於它的迷人的短寫在這裏:http://markmail.org/message/nj3iclk6jnczshop

要解決這個問題,你可以使用的方法是文章中的建議,我會想象,但我確實是只使用jQuery的.html()方式方法沒有參數,正如寫法所提示的那樣。