用javascript切换html内容
Toggle html content with javascript
使用以下代码(JS)
<script>
function changeText(element){
element.innerHTML = "<span class='icon-remove3'>Content icon-remove3</span> Eliminar del pack";
element.style.background = "#CCC";
}
</script>
我可以改变以下标签的内容:
<label class="anadir_producto" for="additional_buy_{$packcontent.id_product}" onclick="changeText(this);" id="anadir"><span class="icon-4">Content Icon 4</span>Añadir al pack</label>
但问题来了,当我试图切换回"Añadir al pack",因为它没有切换回来。
JSFIDDLE
什么线索吗?
您永远不会设置原始文本。下面的代码可能是最简单的下一步:
function changeText(element){
if (element.innerHTML.indexOf("icon-4") >= 0) {
element.innerHTML = "<span class='icon-remove3'></span> Eliminar del pack";
} else {
element.innerHTML = "<span class='icon-4'>Content Icon 4</span>Añadir al pack";
}
element.style.background = "#CCC";
}
看到我们在设置新内容之前如何检查文本是什么了吗?这样你就可以在这些值之间切换了。
有很多更干净的方法可以做到这一点,例如使用DOM而不是字符串比较来检查span
的类。
使用jquery库
试
(function (_o) {
$("label.anadir_producto").on("click", function (e) {
$(this).html(function (i, o) {
return ( o === _o
? "<span class='icon-remove3'>"
+ "Content icon-remove3"
+ "</span>Eliminar del pack"
: _o );
});
return ( $("span", this).is(".icon-remove3")
? $(this).css("background", "#ccc")
: $(this).css("background", "transparent") );
})
}($("label.anadir_producto").html()));
http://jsfiddle.net/guest271314/5U27a/
Else部分需要处理以切换到原始内容
function changeText(element){
if(!element.isFlipped){
element.innerHTML = "<span class='icon-remove3'></span> Eliminar del pack";
element.style.background = "#CCC";
element.isFlipped = true;
}
else{
element.innerHTML = "<span class='icon-4'>Content Icon 4</span>Añadir al pack";
element.style.background = 'none';
element.isFlipped = false;
}
}
如果您正在使用jQuery,请使用jQuery。: -)
http://jsfiddle.net/isherwood/U8yY8/5/$('.anadir_producto').toggle(function() {
$(this).html('<span class="icon-remove3">Content icon-remove3</span> Eliminar del pack');
}, function() {
$(this).html('<span class="icon-4">Content Icon 4</span>Añadir al pack');
});
注意,我已经从HTML中删除了onclick
属性。通常把事情分开比较好。
相关文章:
- 重新排列HTML元素的顺序并更改内容
- 用HTML在不同屏幕上显示和隐藏内容的方法
- 如何根据html内容使用ng类-AngularJS
- 如何使用JavaScript访问HTML链接内容
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 如何将html元素添加为生成的内容
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- JavaScript在其他页面上用html内容填充文本框
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- HTML表内容:如果行很长,如何在新行中显示部分内容
- 使用javascript动态创建html内容/元素
- 无法将大型html内容POST到Chrome上的服务器
- VBA正在抓取不在HTML源文件中的生成内容
- 将内容ajax加载到html弹出窗口中
- 从按钮中选择内容 (html),但不是每个内容
- $.get() 方法 JQuery 不读取任何内容 (html)
- 跨页面的多个内容 (html)
- 可以通过Fancytree中的AJAX加载多行内容/html/ish内容
- 如何从mysql插入数据后,从数据库添加一个内容HTML没有刷新php