javascript - Jquery 切换文本按钮,内部带有 Bootstrap 图标

标签 javascript jquery html twitter-bootstrap twitter-bootstrap-3

我正在使用 Boostrap 3 和 Jquery,并且尝试使用 boostrap 图标跨度切换按钮内的文本,但不知道该怎么做。这是我尝试过的:
html 代码:

<button type='button' class='btn btn-success btn-md'>
<span class='glyphicon glyphicon-edit'></span> Edit</button>


Jquery代码:

$(this).text(function(i, text){
  return text === "<span class='glyphicon glyphicon-edit'></span> Close" ? "<span class='glyphicon glyphicon-edit'></span> Edit" : "<span class='glyphicon glyphicon-edit'></span> Close"
})

那么...这怎么可能有效?
1) 带有切换文本按钮但保留相同图标的示例。
2)另一个带有切换文本按钮但切换图标类的示例
谢谢。

最佳答案

您可以使用 indexOf 代替 ===因为:

$(this).text() === "↵     Edit"

就像您看到的那样,有一个额外的字符(换行符),您不能依赖它。

带有 jQ​​uery.html 的代码片段是:

$('button').on('click', function(e) {
  $(this).html(function(i, text){
    return (text.indexOf("Close") != -1) ? "<span class='glyphicon glyphicon-edit'></span> Edit" : "<span class='glyphicon glyphicon-edit'></span> Close"
  })
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<button type='button' class='btn btn-success btn-md'>
    <span class='glyphicon glyphicon-edit'></span> Edit</button>

或者,在 JS 中你可以这样写:

this.childNodes[2].textContent = (this.childNodes[2].textContent.indexOf("Close") != -1) ? 
      ' Edit' : ' Close';

代码片段:

$('button').on('click', function(e) {
  this.childNodes[2].textContent = (this.childNodes[2].textContent.indexOf("Close") != -1) ? ' Edit' : ' Close';
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<button type='button' class='btn btn-success btn-md'>
    <span class='glyphicon glyphicon-edit'></span> Edit</button>

关于javascript - Jquery 切换文本按钮,内部带有 Bootstrap 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41351768/

相关文章:

javascript - 如何回显数据类型 ="address"?

javascript - 在所有页面内容加载之前,CSS 动画是错误的

Jquery wrapInner - 排除第一个元素

html - 具有边框和边距问题的 CSS

html - 新样式未显示在 HTML 页面上

javascript - 是否可以在同一个 package.json 文件中使用 VueJS 1 和 2?

javascript - Bootstrap 3 :navbar not working

javascript - Three.js - 错误的轴或相机旋转

javascript - Bootstrap 导航栏 #links 正在被 angularjs 更改(或不工作)

html - 当将鼠标悬停在一个菜单项上到另一个菜单项时,它会与前一个菜单项重叠吗?请测试菜单功能?