2011-12-13 77 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");