2017-09-06 63 views
0

我想其中一个电子邮件地址是动态变化的使用jquery.bubble.text.js脚本来更改element.style.color在DOM

一切正常,发现除了使文本改变颜色创造效果。我不确定是否因为我有一个span id =“bubble”作为div id =“colorchange”的孩子。我用的脚本 -

var x = document.getElementById('bubble').innerHTML; if(x == "Well, not anything!" || x == "You get the point..") { document.getElementById('colorchange').innerHTML.style.color = "#FF0000" }

我有HTML,CSS和JS和我试图在codepen HERE

感谢或你的帮助,以实现更准确和说明性图片!

+0

该代码不会继续运行......它只运行一次并完成。您需要找到一些脚本触发的事件来说明文本已更改。 – epascarello

+0

我想你应该给''添加'else'if'将文本填充为白色 –

+0

'x'完全是' ...'它永远不会包含您正在测试的文本... –

回答

-1

使用window.setInterval(<function_name>, <interval>),把你的代码放到一个函数,例如:

window.setInterval(color_text, 500); 

function color_text(){ 
    var x = document.getElementById('bubble').innerHTML; 
    if(x == "Well, not anything!" || x == "You get the point..") { 
    document.getElementById('colorchange').innerHTML.style.color = "#FF0000" 
    } 
} 

我不知道,如果0123在innerHTML上存在。如果不使用document.getElementById('colorchange').style.color

+0

确定这个样式不存在于innerHTML上,因为它是一个字符串,这是唯一的OP的代码错误。 –

+0

这个建议真的很愚蠢。为什么'setInterval'修复了一些问题?谈论一个盲目的解决方法!我很确定OP的控制台仍然充满JS错误 –

+0

您需要不断运行该代码。原始问题代码只运行一次 –

1

不要样式的innerHtml,它就像"Hello, World!"的字符串,不包含它的元素,样式元素使用:

var x = document.getElementById('bubble').innerHTML; 
 
if(x == "Well, not anything!" || x == "You get the point..") { 
 
     document.getElementById('colorchange').style.color = "#FF0000"; 
 
}
<span id="colorchange"> 
 
    <span id="bubble">Well, not anything!</span> 
 
</span>

0

感谢@Marcin Szwarc

这工作,但文本没有从红色变回白色,所以我增加

else { 
document.getElementById('colorchange').style.color = "#FFFFFF" } 

感谢您的帮助!