- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个标记:
<div class="wysiwyg">
<em>It has to be red because is the only em element</em>
</div>
<div class="wysiwyg">
Some text
<em>Not to be red because has previous (and following) text node</em>
Some text
</div>
<div class="wysiwyg">
<em>It has to be red because its' a em in a div that has only ems and no text node / </em>
<em>It has to be red because its' a em in a div that has only ems and no text node</em>
我想申请 element.style.color = "red";
只到 <ems>
唯一的元素 <em>
其 parent 的 child 或有其他 child 的 child <em>
s 作为同级但不是文本节点作为同级。
此外,我想知道如何仅使用类似 node.style.color = blue;
的样式来设置文本节点的样式。 (我知道 .style
方法仅适用于元素...)。
谢谢!
最佳答案
假设您想要一个原生的 JavaScript 解决方案,并且您至少可以针对 EcmaScript 5,这里有一个解决方案 https://jsfiddle.net/pjhuptt3/ .
我正在使用 childNodes
来获取所有子节点,包括文本节点。此外,我正在检查 nodeType
是否等于 3
(文本节点),并且我必须检查文本节点是否不是空白。
请注意,该代码仅用于示例目的,用于演示您拥有的工具。未经任何方式测试或优化。
function hasTextNodes(node) {
if (!node || !node.childNodes.length) return false;
for (var i=0;i<node.childNodes.length;++i) {
var child = node.childNodes[i];
// check if the node is text node and check if it's not a white space
if (child.nodeType == 3 && child.textContent && child.textContent.trim().length)
return true;
}
return false;
}
document.querySelectorAll(".wysiwyg").forEach(function(node) {
if (!hasTextNodes(node))
node.style.backgroundColor = "blue";
});
如果您想为 em
元素设置样式,您可以这样做。
document.querySelectorAll(".wysiwyg").forEach(function(node) {
if (!hasTextNodes(node)) {
// query the em direct children
node.querySelectorAll("> em").forEach(function(em) {
em.style.backgroundColor = "blue";
});
}
});
为了完整起见,我应该告诉您,除非您需要这个确切的场景(例如,这是一些教育练习),否则有几种更好的方法可以实现同样的目标。
span
中并添加一个特定的类。这样就可以更轻松地处理它们,您可以选择它们、设置它们的样式等。jQuery
这样的框架,解决这类任务要容易得多,而且 jQuery
本身不会增加太多开销,尤其是当您引用它使用 CDN。关于javascript - 如何仅将没有文本节点的类型的元素设置为 sibling ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41200359/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!