替换按钮上的单个单击

时间:2018-01-18 01:45:52

标签: javascript jquery

我的页面上的按钮数量是动态创建的,因此添加一个ID属性,但不是很理想。我当然也不想添加一个类,因为附加同一个类(按钮是在PHP循环中生成的)会影响它们。

这就是我的意思。

所有按钮中都包含<button><span>View</span><br />One</button> <button><span>View</span><br />Two</button> <button><span>View</span><br />Three</button> 字样。

$("button").click(function() {
     $("button span").html($("button span").html() == 'View' ? 'Hide' : 'View');
});

使用这个jQuery函数,我能够更改单个单词(而不是我之前失败的实验所显示的整个按钮文本)。

View

但是这个脚本正在使用单词{{1}}更改所有按钮的值。

我如何修改(或使用不同的方法),只针对点击的按钮,而不是所有按钮(如我所说,最好不添加ID属性)。

JSFiddle:https://jsfiddle.net/jpb1a674/1/

1 个答案:

答案 0 :(得分:3)

使用this。在事件内部,它引用了引发事件的元素。

$("button").click(function() {
  var span = $(this).children().first();
  span.html(span.html() == 'View' ? 'Hide' : 'View');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button><span>View</span><br />One</button>
<button><span>View</span><br />Two</button>
<button><span>View</span><br />Three</button>