切换后更改元素的名称

时间:2009-09-10 06:22:07

标签: jquery toggle

通过使用toggle()函数单击带有类toggleIt的

元素,我已经完成了隐藏和显示div元素的操作。 但是点击后如何更改p标签的名称?

例如,我为p标签命名为“隐藏”。点击这个我隐藏了一个div。现在,我还希望将名称更改为“显示”。我该怎么做?

<p class="toggleIt">Hide</p> //want this to change to 'Show' after clicking

$('.toggleIt').click(function(){

     $('#common_fields').toggle();

});

5 个答案:

答案 0 :(得分:2)

我认为您打算更改P元素的文本而不是其名称。

<p class="toggleIt">Hide</p> //want this to change to 'Show' after clicking
$('.toggleIt').click(function(){
  $('#common_fields').toggle();
  var thisElem = $(this);
  thisElem.text(thisElem.text() === "Show" ? "Hide" : "Show");
});

答案 1 :(得分:1)

您需要知道#common_fields元素是否为visible,才能获得正确的“显示”或“隐藏”文字值:

$('.toggleIt').click(function(){
  var $commonFields = $('#common_fields');
      text = $commonFields.is(':visible') ? 'Show' : 'Hide';

  $(this).text(text);
  $commonFields.toggle();
});

尝试上述代码段here

答案 2 :(得分:0)

$(".toggleIt").text("Show");

确保这是唯一带有“toggleIt”类的<p>标记,否则您需要使用其他选择器。

答案 3 :(得分:0)

根据您在上面发布的代码,您不是要更改名称属性,而是尝试更改元素的文本值/ innerHTML。

这是通过致电:

完成的
$('.toggleIt').click(function(){
     $('#common_fields').toggle().text('Show');
});

如果你真的想要更改p元素的name属性,你可以这样做:

$('.toggleIt').click(function(){
     $('#common_fields').toggle().attr('name', 'Show');
});

答案 4 :(得分:0)

var toggleString = {
    show:'Show',
    hide:'Hide'
};

$('.toggleIt').toggle(function() {
    $('#common_fields').hide();
    $(this).text( toggleString.show );
}), function() {
    $('#common_fields').show();
    $(this).text( toggleString.hide );
});