【发布时间】:2014-03-12 17:18:25
【问题描述】:
我正在尝试编写一个可重用的脚本,用于在点击时切换元素的文本。
我让它在点击时工作,但我无法让它切换回来。我的 if 语句有问题吗?
<span class="js-textEdit" data-text="Show less">Show more</span>
$('.js-textEdit').click(function() {
var oldText = $(this).text();
var newText = $(this).attr('data-text');
if ($(this).text(oldText)) {
$(this).text(newText);
} else {
$(this).text(oldText);
}
});
这是JSFIddle
另外,有没有更简洁的方法来重构它?我使用数据属性来确定新文本,而不是使用 ID 并且必须为要使用它的每个元素编写单独的脚本。数据属性方法是不是好方法?
【问题讨论】:
-
当您第二次单击按钮时,旧文本是当前在其中的内容,使用数据将当前文本绑定到元素。 api.jquery.com/jQuery.data
-
Button text toggle in jquery 的可能副本。
标签: javascript jquery