如何修改此Javascript以允许将HTML插入到Button文本中?
How can I amend this Javascript to allow HTML to be inserted into the Button text?
我已经成功地得到了@PSL对这个答案的第一个Javascript代码,并创建了我自己的版本(见下文)。每次单击按钮时,代码基本上都会更改按钮内的文本。但我不能将HTML插入按钮文本。当我这样做时,它所做的只是在按钮文本中显示HTML代码,而不是执行它。请有人告诉我如何修改这个Javascript下面允许HTML被插入到按钮文本每次点击按钮。谢谢你!
例如,我正在使用
当前HTML<button id="viewPhotosButton" type="button" class="btn btn-large" data-toggle="collapse" data-target="#photos-slide"><i class="icon-align-left icon-chevron-down"></i> View More Photos</button>
Javascript $(function(){
$('#viewPhotosButton').click(function(){
$(this).text(function(i,old){
return old=='<i class="icon-align-left icon-chevron-down"></i> View More Photos' ? '<i class="icon-align-left icon-chevron-up"></i> Hide Extra Photos' : '<i class="icon-align-left icon-chevron-down"></i> View More Photos';
});
});
});
按钮(点击后)所需的HTML icon-chevron-down更改为icon-chevron-up AND 查看更多照片更改为隐藏额外照片
<button id="viewPhotosButton" type="button" class="btn btn-large" data-toggle="collapse" data-target="#photos-slide"><i class="icon-align-left icon-chevron-up"></i> Hide Extra Photos</button>
用html()代替text()
$(function(){
$('#viewPhotosButton').click(function(){
$(this).html(function(i,old){
return old=='<i class="icon-align-left icon-chevron-down"></i> View More Photos' ? '<i class="icon-align-left icon-chevron-up"></i> Hide Extra Photos' : '<i class="icon-align-left icon-chevron-down"></i> View More Photos';
});
});
});
JSFiddle
使用html()方法代替text()应该可以工作
$(function(){
$('#viewPhotosButton').click(function(){
$(this).html(function(i,old){
return old=='<i class="icon-align-left icon-chevron-down"></i> View More Photos' ? '<i class="icon-align-left icon-chevron-up"></i> Hide Extra Photos' : '<i class="icon-align-left icon-chevron-down"></i> View More Photos';
});
});
});
由于问题标记为javascript而不是jQuery,如果有人来这里寻找非jQuery的答案,这里有一个非jQuery的替代方案:
button_element = document.getElementById('viewPhotosButton');
button_element.onclick = function() {
var i_element = button_element.firstChild;
var old_class = i_element.getAttribute('class');
if (old_class == 'icon-align-left icon-chevron-up') {
var new_class = 'icon-align-left icon-chevron-down';
var new_text = 'View more photos';
}
else {
var new_class = 'icon-align-left icon-chevron-up';
var new_text = 'Hide photos';
}
i_element.setAttribute('class', new_class);
var old_text_node = i_element.nextSibling;
var text_node = document.createTextNode(new_text);
button_element.replaceChild(text_node, old_text_node);
}
相关文章:
- 使用PHP插入HTML在JavaScript上不起作用
- 如何使用innerHtml正确插入html
- AngularJS指令,在元素后插入HTML
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 通过jQuery插入HTML不起作用
- 通过javascript以编程方式将文件插入HTML输入
- 在DIV中动态插入HTML并访问新元素
- 在所有元素中插入HTML
- 在其他图像下使用javascript将图像插入html
- 在工具提示Javascript中插入HTML
- 在HTML字符串的某个段落后插入HTML
- 可以插入在插入HTML标记之前
- 从 AngularJS 将文本插入 HTML
- 将 javascript 返回值插入 html
- 流路由器 - 将内容插入 HTML 模板
- 插入html时是否有触发事件的方法
- JavaScript-插入HTML的内容部分
- jquery多次在元素之间插入html
- 将当前年份插入HTML
- 在光标位置插入HTML,并使用javascript将光标移动到插入的HTML的末尾