首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置TextNode的样式

设置TextNode的样式
EN

Stack Overflow用户
提问于 2015-07-16 03:41:26
回答 2查看 120关注 0票数 1

我用单选按钮做了一个简单的多项选择程序。当学生回答错误时,我可以在她的选择后面加一个X,但是我如何使X变红呢?谢谢你的帮助,杰拉德

代码语言:javascript
复制
<body> 

<input type="radio" name="Q1" value="1756-1819,Berlioz" 
             onclick = "radioProcessor(this)" />      &nbsp; 1756-1819

<script>
function radioProcessor(theRadio){
        theRadio.nextSibling.nodeValue = theRadio.nextSibling.nodeValue + " X";
}
</script>

</body>
EN

回答 2

Stack Overflow用户

发布于 2015-07-16 04:22:52

我说,谢谢Andree,但这不管用。我认为是因为TextNode包含文本,而不是其他元素(如跨度)。然而,多亏了你的想法,这是可能的-

代码语言:javascript
复制
<input type="radio" name="Q1" value="1756-1819,Berlioz" 
             onclick = "radioProcessor(this)" /> <span>&nbsp; 1756-1819</span>

<script>
function radioProcessor(theRadio){
        console.log(theRadio.nextElementSibling); // prints [object Text]
        theRadio.nextElementSibling.setAttribute("style","color:red");
        theRadio.nextElementSibling.innerHTML = 
                          theRadio.nextElementSibling.innerHTML + " X";
}

它更近,但我只想要红色的"X“:-)每次按下单选按钮时,它还会继续添加X!

票数 0
EN

Stack Overflow用户

发布于 2015-07-16 05:13:49

这段代码适用于我。即使在单选按钮上单击两次也是如此。

代码语言:javascript
复制
<input type="radio" name="Q1" value="1756-1819,Berlioz"
             onclick = "radioProcessor(this)" />     <span id="value"> &nbsp; 1756-1819</span>

<script>
function radioProcessor(theRadio){
  var xAdded = document.getElementsByClassName("incorrect").length;
  if(!xAdded) {
    var result = document.createElement('span');
    result.setAttribute("class", "incorrect");
    result.innerHTML = theRadio.nextSibling.nodeValue + " X";
    var value = document.getElementById("value");
    value.parentNode.insertBefore(result, value.nextSibling);
  }


}
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31439610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档