jquery动画来改变广播的文本

时间:2014-08-23 08:03:36

标签: javascript jquery animation

我正在尝试介绍动画并更改div标签内的文本,并针对单选按钮发送文本

能够通过动画更改div的文本 但是我无法使用动画

更改收音机的文本

注意 - 没有动画我能够根据之前提出的问题

来做到这一点

以下是我的HTML:

<div id="questionBlock">        
    <article>loremipsum dah blah blah </article>
</div>

<label class="block" id="lblFirstOption" for = "sizeSmall"> 
    <input type = "radio" name = "radSize" id = "sizeSmall" value = "small" />small
</label>

适用于简单div的Jquery:

$('#questionBlock article').fadeOut(function() {
    $(this).text(val["carType"]).fadeIn().delay(3000);
});

不适用于标签文本的Jquery随动画更改:

$('#sizeSmall')[0].nextSibling.nodeValue.fadeOut(function() {
    $(this)[0].nextSibling.nodeValue(val["carType"]).fadeIn().delay(3000);
});

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

$('#lblFirstOption span').fadeOut(function() {      
   $(this).parent().append('<span>TestRadio</span>').fadeIn().delay(3000);
});

Live Demo

答案 1 :(得分:0)

.nodeValue不是函数,只需使用赋值

进行设置
$(this)[0].nextSibling.nodeValue = val["carType"];

此外,由于您现在正在使用实际的DOM对象,因此您不再使用jQuery链,因此在调用失败后将fadeIn和延迟链接起来。即使你仍然在jQuery链中,你也无法淡入/淡出textNodes。您需要将文本包装在另一个元素中,例如span

HTML

<label class="block" id="lblFirstOption" for = "sizeSmall"> 
    <input type = "radio" name = "radSize" id = "sizeSmall" value = "small" />
    <span>small</span>
</label>

JS

$('#sizeSmall').next().fadeOut(function() {
    $(this).text(val["cartype"]).fadeIn().delay(3000)
});
相关问题