2011-12-13 75 views
1

我一直在苦苦尋找一個jQuery的替代方案,如不完全一樣:jQuery的替代等於「firstChild.nodeValue」

document.getElementById("element").firstChild.nodeValue = value; 

下面是相關的HTML結構:

<div id="clock"> 
    <div id="day"> 
    </div> 
    <div id="date"> 
    </div> 
</div> 

對於「日」和「日期」我可以只使用$("#day").text(day)$("#date").text(date),但只要我使用$("#clock").text(clock)作爲「時鐘」,「日」和「日期」消失,只顯示「時鐘」元素。

當然,「clock」是其他兩個元素的父元素,所以如果我使用jQuery代碼,它可能會'覆蓋'子元素。奇怪的是,使用僞元素如:first-child:first沒有幫助。

很高興聽到解決方案!謝謝。

回答

3

看來你想在#day元素之前插入一些文本。

$("#clock").prepend('your text'); 

$("#day").before('your text'); 

應該這樣做。


注意.firstChild.nodeValue = value;只有元素之前插入新的文本,因爲你有一個文本節點在那裏,只包含空格。如果你的HTML是

<div id="clock"><div id="day"></div></div> 

它不會做任何事情,因爲.firstChild將參考#daynodeValue沒有爲元素節點定義。

+0

我看到..使用某種形式的「前」功能的想法完全忘在腦後。我測試了它,它工作。非常感謝! – Daan

1

如果您想爲「時鐘」的第一個孩子設定值DIV你要做的:

$("#clock :first").text("Your Content");