作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在观看有关如何在单击文本旁边的 checkbox
时划掉文本的教程,但我的代码不起作用,即使它与教程(它工作得很好)。
我一直在查看我的代码很长时间,但看不出有什么问题,也许这只是我看不到的错字……有人知道为什么吗?
这是 JavaScript 代码(只是相关部分)
function updatingItem() {
var cbId = this.id.replace("cb_", "");
var textItem = document.getElementById("item_" + cbId);
textItem.style.textDecoration = "line-through";
}
function addItem() {
totalItems++;
var entry = document.createElement("li");
var checkBox = document.createElement("input");
checkBox.type = "checkbox";
checkBox.id = "cb_" + totalItems;
checkBox.onclick = updatingItem;
var span = document.createElement("span");
span.id = "item_" + totalItems;
span.innerHtml = textItem;
var textItem = document.getElementById("textItem");
entry.innerText = textItem.value;
var location = document.getElementById("todoList");
entry.appendChild(checkBox);
entry.appendChild(span);
location.appendChild(entry);
}
最佳答案
您的主要问题是您在实际获取值之前设置了 span.innerHtml = textItem;
var textItem = document.getElementById("textItem");
但是嘿...
仅限 CSS:
label{
display: block;
}
label input[type=checkbox]:checked + span{
text-decoration: line-through;
}
<label>
<input type="checkbox">
<span>Buy Coffee</span>
</label>
<label>
<input type="checkbox" checked>
<span>Ask question on SO</span>
</label>
<label>
<input type="checkbox">
<span>Drink coffee</span>
</label>
这是一个简单得多的简单不完全是教程自解释的 JS 代码:
var todoList = document.getElementById("todoList");
var itemText = document.getElementById("itemText");
var add = document.getElementById("add");
add.addEventListener("click", function(){
var text = itemText.value.trim();
// IF NO TEXT ENTERED - DO NOTHING
if(!text.length) return ;
// CREATE AND APPEND HTML
var item = "<li><label><input type='checkbox'> <span>"+ text+"</span></label></li>";
todoList.insertAdjacentHTML('beforeend', item);
// FINALLY CLEAR THE TEXT FROM OUR INPUT
itemText.value = "";
});
label{
display: block;
}
label input[type=checkbox]:checked + span{
text-decoration: line-through;
background:rgba(0,255,0, 0.2);
}
<ul id="todoList">
<li>
<label>
<input type="checkbox">
<span>Buy Coffee</span>
</label>
</li>
<li>
<label>
<input type="checkbox" checked>
<span>Ask question on SO</span>
</label>
</li>
<li>
<label>
<input type="checkbox">
<span>Drink coffee</span>
</label>
</li>
</ul>
<input id="itemText" type="text">
<button id="add">ADD TO LIST</button>
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
关于javascript - 复选框 - 单击待办事项列表的复选框时划掉文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36237943/
我正在使用 Tika* 来解析 PDF 文件。检索文档的文本没有问题,但我不知道如何提取文本: 下划线 突出显示 划掉 Adobe Writer 为您提供了不同的文本编辑选项,但我看不到它们“隐藏”的
我是一名优秀的程序员,十分优秀!