我有一个HTML结构,例如
<p>
<a onclick="try {
toggle_detail("additional");
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('toggle_detail(\"additional\");'); throw e }; return false;" href="#">Show </a>
</p>
<div id="additional">
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
</div>
我正在编写一个原型,以在单击“显示”和“隐藏”时显示额外的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 =“ additional”
如何将链接的innerhtml更新为show / hide?
我不知道如何更新点击链接的innerHtml ..
请提出建议
最佳答案
将此添加到您的click
处理程序。
this.innerHTML = (this.innerHTML == 'Show')?'Hide':'Show';
或将调用方作为参数添加到您的
toggle_detail
函数中toggle_detail(this, "additional");
并更改功能以接受该额外参数
function toggle_detail(clickButton, className){
// do what you want with clickButton //
}
同样,更改
each
中的文本也没有意义。您只能在each
调用之前或之后执行一次。奖励:代替
if(el.visible()) el.hide(); else el.show()
,您可以简单地使用el.toggle()
。