2010-12-07 33 views
0

我有一个HTML结构像如何改变点击的元素的innerHTML原型

<p> 
     <a onclick="try { 
     toggle_detail(&quot;additional&quot;); 
     } catch (e) { alert('RJS error:\n\n' + e.toString()); alert('toggle_detail(\&quot;additional\&quot;);'); throw e }; return false;" href="#">Show   </a> 
</p> 

<div id="additional"> 
    <p>1</p> 
    <p>2</p> 
    <p>3</p> 
    <p>4</p> 
</div> 

我写一个原型上显示点击显示额外股利和隐藏的隐藏。

$$("."+element_id).each(function(el){ 
     if(el.visible()){el.hide(); 

      // el.previous(0).innerHTML="Show"; 

    } 
     else {el.show(); 
      // el.previous(0).innerHTML="Hide"; 
    } 
    }); 

其中element_id = “额外”

如何更新链接的innerHTML显示/隐藏? 我不知道如何更新点击链接的innerHtml .. 请给点建议

回答

2

添加到您的click处理程序。

this.innerHTML = (this.innerHTML == 'Show')?'Hide':'Show'; 

或者调用作为参数添加到您的toggle_detail功能

toggle_detail(this, &quot;additional&quot;); 

并且把函数接受额外的参数

function toggle_detail(clickButton, className){ 
    // do what you want with clickButton // 
} 

而且它使不出来改变文本里面的each。您应该只在拨打each之前或之后执行一次。

奖励:而不是if(el.visible()) el.hide(); else el.show()你可以简单地使用el.toggle()

+0

实际上,我正在生成链接 – useranon 2010-12-07 11:04:55