我有一个当前可用的 id 按钮:
<input type="button" id="show_button" value="Show" />
我想要的是..单击按钮时,按钮的值将更改为“隐藏”,它的 id 将更改为“hide_button”。单击隐藏按钮时,它的值将更改为“显示”它的 id 将更改为“show_button”..我怎样才能做到这一点?
我有一个当前可用的 id 按钮:
<input type="button" id="show_button" value="Show" />
我想要的是..单击按钮时,按钮的值将更改为“隐藏”,它的 id 将更改为“hide_button”。单击隐藏按钮时,它的值将更改为“显示”它的 id 将更改为“show_button”..我怎样才能做到这一点?
我不知道您为什么要更改 ID,因为我们可以在不更改 ID 的情况下获得您想要的内容.. 试试这个
$('#show_button').click(function(){
var $this=$(this);
$this.val(($this.val()=="Show")?"Hide":"Show");
});
这更好,因为您不必对两个 id 都使用两个单击事件处理程序..
如果您需要更改 ids .. 然后使用事件委托 ..
$(document).on('click','#show_button',function(){
var $this=$(this);
$this.prop('id','hide_button');
$this.val("Hide"); //OR $this.val("Hide") //if you are using input type="button"
});
$(document).on('click','#hide_button',function(){
var $this=$(this);
$this.prop('id','show_button');
$this.val("Show"); //OR $this.val("Hide") //if you are using input type="button"
});
工作示例:http: //jsfiddle.net/TjaBR/
$('body').on('click', '#process', function() {
$(this).toggleClass('hidden');
$(this).val($(this).hasClass('hidden') ? 'Hide' : 'Show');
});
您可以使用更改值
$('#show_button').val('hide');
您可以使用更改 id
$('#show_button').attr('id','hide_button');
使用 Jquery Javascript 库:
$('body').on('click', '#show_button', function() {
$(this).attr('id', 'hide_button').val('Hide');
});
$('body').on('click', '#hide_button', function() {
$(this).attr('id', 'show_button').val('Show');
});
$('body').on('click', '#show_button, #hide_button', function() {
var $this = $(this),
isShow = $this.attr('id') == 'show_button';
if (isShow) {
$this.attr('id', 'hide_button').val('Hide');
}
else {
$this.attr('id', 'show_button').val('Show');
}
});
jsFiddle:http: //jsfiddle.net/sW49u/
您的问题的一种解决方案是有 2 个输入,您可以在它们之间切换。我不喜欢更改/重命名 id 的原则。
检查这个演示。
html
<input type="button" id="show_button" value="Show" />
<input type="button" id="hide_button" value="Hide" style="display:none;" />
jQuery
$('input').click(
function(){
$('input').toggle();
});