我想改变<code>内元素的颜色标签不工作
i want to change color of elements within <code> tag not working
我正试图改变仅在<code>
标签内但不工作的元素的颜色。
我不想使用document。GetElementByID按照这里的答案getElementsByTagName在JavaScript
下面是我的原始代码。
<div id="wmd-post">
<code>
<p></span></p> <!-- i would want only this to change color -->
</code>
<p></span></p> <!-- i would NOT want this to change color -->
</div>
<script>
var text = document.getElementById("wmd-post");
var str = text.innerHTML;
str = str.replace(/<'/span>/g, '<span style="color:red"></span></span>');
document.getElementById("wmd-post").innerHTML = str;
</script>
我试过的是
<div id="wmd-post">
<code>
<p></span></p>
</code>
<p></span></p>
</div>
<script>
var text = document.getElementsByTagName('code');
var str = text.innerHTML;
for(var i = 0; i < str.length; i++)
{
str[i] = str.replace(/<'/span>/g, '<span style="color:red"></span></span>');
document.getElementsByTagName("code").innerHTML = str[i];
}
</script>
我还是不知道你为什么不使用css,但这里是:
html:<div id="wmd-post">
<code>
<p></span></p>
</code>
<p></span></p>
</div>
JS:
var text = document.getElementsByTagName('code')[0];
var str = text.innerHTML;
str = str.replace(/<'/span>/g, '<span style="color:red"></span></span>');
document.getElementsByTagName("code")[0].innerHTML = str;
小提琴:https://jsfiddle.net/u8ystwyg/1/
一个仅适用于css的解决方案:
<style>
code { color: red; }
</style>
<div id="wmd-post">
<code>
<p></span></p>
</code>
<p></span></p>
</div>
请点击这里
你只需要改变你的代码的一个脚本,这是脚本。
var text = document.getElementsByTagName('code');
var str = text[0].innerHTML;
str = str.replace(/<'/span>/g, '<span style="color:red"></span></span>');
document.getElementsByTagName("code")[0].innerHTML = str;
你的问题在被另一个用户编辑掉之前有一个jQuery标签。如果你想使用jQuery,这里有一个解决方案。
$(document).ready(function() {
$("#wmd-post > code").css("color", "red");
});
查看JSFiddle
document.getElementsByTagName
返回一个NodeList
,而不是单个元素。你需要遍历列表。
var codes = document.getElementsByTagName('code');
for (var i = 0; i < codes.length; i++) {
var str = codes[i].innerHTML;
str = str.replace(/<'/span>/g, '<span style="color:red"></span></span>');
codes[i].innerHTML = str;
}
<div id="wmd-post">
<code>
<p></span></p>
</code>
<p></span></p>
</div>
这里有一个使用Element.getElementsByTagName()的工作示例,它基本上获得具有指定标记(在您的情况下code
标记)的文档中的所有元素。你可以使用string .prototype.replace()来替换"target"字符串。
(function(){
var text = document.getElementsByTagName('code'),
str = text[0].innerHTML;
str = str.replace(/<'/span>/g, '<span class="red"></span></span>');
text[0].innerHTML = str;
})();
.red{
color:red;
}
<div id="wmd-post">
<code>
<p></span></p>
</code>
<p></span></p>
</div>
相关文章:
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- JS-颜色选择器只有第一个工作
- 取消光谱颜色选择器不工作
- JavaScript DOM 更改背景颜色未按预期工作
- jQuery每5个工作小时重置一次颜色模式
- 这个颜色函数是如何工作的
- JustGage 中的自定义颜色无法正常工作
- 在javascript而不是CSS(悬停)中更改链接颜色---在jsfiddle而不是浏览器中工作
- Gulp/Grunt 获取触笔工作表中的所有颜色变量,并将它们作为变量定义写入文件
- JS点击功能不再工作以更改链接颜色
- 通过库转换颜色无法正常工作
- 使用jquery在悬停时更改背景颜色无法正常工作
- 颜色盗贼不会工作…
- 颜色框代码在Umbraco外部工作,但在内部不工作
- Highmaps最小/最大颜色未按预期工作
- JQuery背景颜色更改(.animate或.css)在重新启动后只能工作一次
- 点击改变星星的颜色-为什么不;t这项工作
- 使用jquery更改纯HTML Slider Thumb颜色(包括工作css)
- jQuery改变背景颜色不工作
- 非html5 JavaScript RGB颜色选择器是如何工作的