我尝试使用javascript设置文本删除线。我对Javascript一无所知,并尝试在网上搜索如何做到这一点。
<script language="JavaScript">
function recal(val,sum)
{
if(sum == true)
{
var total = parseInt(document.getElementById("total").innerHTML, 10);
total+=val;
document.getElementById("total").innerHTML=total;
}
else
{
var total = parseInt(document.getElementById("total").innerHTML, 10);
total-=val;
document.getElementById("total").innerHTML=total;
var pnl = document.getElementById("totalEvents");
}
var pnl = document.getElementById("totalEvents");
var pnl2 = document.getElementById("eventCategory");
var pnl3 = document.getElementById("nameID");
**strikethrough starts here**
if (!sum && pnl.firstChild.tagName != "S" && pnl2.firstChild.tagname !="S")
{
pnl.innerHTML = "<S>"+ pnl.innerHTML+"</S>";
pnl2.innerHTML = "<S>"+ pnl2.innerHTML+"</S>";
}
else
{
pnl.innerHTML = pnl.firstChild.innerHTML;
pnl2.innerHTML = pnl2.firstChild.innerHTML;
}
}
</script>它使用了文本删除线,但有些地方出了问题。即使我选择了第二个复选框,它也会影响第一个复选框,为什么:(
http://jsfiddle.net/aHH9w/ (我的完整html页面)


发布于 2012-02-21 18:11:20
你正在表演一种相当复杂的方式来实现这一点,这实际上是很容易做到的事情。如果你有一个HTML元素,比如id为'myelement':
<div id="myelement">Hello world</div>要创建删除线,您在JS中所需做的就是:
var ele = document.getElementById("myelement");
ele.style.setProperty("text-decoration", "line-through");如果需要检查元素上是否有删除线:
var ele = document.getElementById("myelement");
var isStruck = (ele.style.getProperty("text-decoration") == "line-through");尽管这并不是真正推荐的。使用内部变量来跟踪状态。
https://stackoverflow.com/questions/9375445
复制相似问题