javascript - 更改按钮文本而不更改按钮图标

标签 javascript jquery twitter-bootstrap font-awesome

我有下一个按钮:

$('.change-button-text').click(function(){
  $('.target-chooser').html('Edit target');
});
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-success btn-next target-chooser" type="button">
  Choose target
  <i class="ace-icon fa fa-arrow-right"></i>
</button>
<button class="change-button-text" type="button">
  Change button text
</button>

如何在不丢失按钮图标的情况下更改文本?

最佳答案

执行此操作的最简单方法是将文本包装在 span 中,然后定位该元素。

假设您不能修改 HTML,那么您可以使用 contents()filter() 来检索文本节点,然后再更改它的 textContent。试试这个:

$('.change-button-text').click(function() {
  $('.target-chooser').contents().filter(function() {
    return this.nodeType == 3 && this.textContent.trim();
  })[0].textContent = 'Edit target ';
});
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-success btn-next target-chooser" type="button">
  Choose target
  <i class="ace-icon fa fa-arrow-right"></i>
</button>
<button class="change-button-text" type="button">
  Change button text
</button>

关于javascript - 更改按钮文本而不更改按钮图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495583/

相关文章:

javascript - 在 playframework View 中调用 javascript 函数

jQuery - 动画功能

html - 试图让文本重叠圆形图像以在使用 Bootstrap 调整大小时表现

css - 在不影响周围其他 div 的情况下将文本添加到 div 列表

html - 侧边导航栏

javascript - 从不同页面重定向到页面上的特定选项卡

javascript - react : Use setState in a function called from another component?

javascript - Javascript 到 jquery 移动 : change value on submit click?

javascript - jQuery点击事件不止一次触发

javascript - 数据图:如何为带有数据的对象设置条件突出显示填充颜色