nor*_*aga 269 javascript
按下它后,我怎么能隐藏'编辑'链接?当我按下编辑时,我还可以隐藏"lorem ipsum"文本吗?
<script type="text/javascript">
function showStuff(id) {
document.getElementById(id).style.display = 'block';
}
</script>
<td class="post">
<a href="#" onclick="showStuff('answer1'); return false;">Edit</a>
<span id="answer1" style="display: none;">
<textarea rows="10" cols="115"></textarea>
</span>
Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum
</td>
Run Code Online (Sandbox Code Playgroud)
Sas*_*ley 426
function showStuff(id, text, btn) {
document.getElementById(id).style.display = 'block';
// hide the lorem ipsum text
document.getElementById(text).style.display = 'none';
// hide the link
btn.style.display = 'none';
}Run Code Online (Sandbox Code Playgroud)
<td class="post">
<a href="#" onclick="showStuff('answer1', 'text1', this); return false;">Edit</a>
<span id="answer1" style="display: none;">
<textarea rows="10" cols="115"></textarea>
</span>
<span id="text1">Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</span>
</td>Run Code Online (Sandbox Code Playgroud)
A-S*_*ani 60
您还可以使用此代码来显示/隐藏元素:
document.getElementById(id).style.visibility = "hidden";
document.getElementById(id).style.visibility = "visible";
Run Code Online (Sandbox Code Playgroud)
注意style.visibility和之间的区别在于style.display使用可见性:隐藏与display:none不同,标记不可见,但在页面上为其分配了空间.标记已呈现,它只是在页面上看不到.
请参阅此链接以查看差异.
Mc-*_*Mc- 39
我想建议你使用JQuery选项.
$("#item").toggle();
$("#item").hide();
$("#item").show();
Run Code Online (Sandbox Code Playgroud)
例如:
$(document).ready(function(){
$("#item").click(function(event){
//Your actions here
});
});
Run Code Online (Sandbox Code Playgroud)
小智 34
我建议隐藏元素(正如其他人所建议的那样):
document.getElementById(id).style.display = 'none';
Run Code Online (Sandbox Code Playgroud)
但为了使元素可见,我建议这(而不是display ='block'):
document.getElementById(id).style.display = '';
Run Code Online (Sandbox Code Playgroud)
其原因是,使用显示="块"是造成额外的裕量/空白旁边的元件在IE(11)和铬(版本43.0.2357.130米)我工作在页面上被可见.
首次在Chrome中加载页面时,DOM检查器中将显示没有样式属性的元素:
element.style {
}
Run Code Online (Sandbox Code Playgroud)
使用标准JavaScript隐藏它就像预期的那样:
element.style {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
使用display ='block'再次显示它会将其更改为:
element.style {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
这跟原来的不一样.在大多数情况下,这很可能没有任何区别.但在某些情况下,它确实会引入异常.
使用display =''会在DOM检查器中将其恢复到原始状态,因此它似乎是更好的方法.
nab*_*ghe 15
你可以使用元素的隐藏属性:
document.getElementById("test").hidden=true;
document.getElementById("test").hidden=false
Run Code Online (Sandbox Code Playgroud)
sit*_*sys 13
您应该尽可能地考虑JS的行为,以及CSS的视觉糖果.通过更改您的HTML:
<td class="post">
<a class="p-edit-btn" href="#" onclick="showStuff(this.parentNode);return false;">Edit</a>
<span id="answer1" class="post-answer">
<textarea rows="10" cols="115"></textarea>
</span>
<span class="post-text" id="text1">Lorem ipsum ... </span>
</td>
Run Code Online (Sandbox Code Playgroud)
只需使用CSS规则,您就可以从一个视图切换到另一个视图:
td.post-editing > a.post-edit-btn,
td.post-editing > span.post-text,
td.post > span.post-answer
{
display : none;
}
Run Code Online (Sandbox Code Playgroud)
和JS代码在两个类之间切换
<script type="text/javascript">
function showStuff(aPostTd) {
aPostTd.className="post-editing";
}
</script>
Run Code Online (Sandbox Code Playgroud)
虽然之前已经多次回答过这个问题,但我认为我会为未来的用户提供更完整,更可靠的答案.主要答案确实解决了这个问题,但我相信知道/理解一些显示/隐藏事物的方法可能会更好.
.
这是我以前的方式,直到我发现其他一些方式.
使用Javascript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
$("#element_to_hid").css("display", "inline");其他操作,否则它将默认返回"阻止"或其他任何将被强制插入的内容.示例:https: //jsfiddle.net/4chd6e5r/1/
.
在为这个设置示例时,我实际上遇到了一些关于这种方法的缺陷,这使得它非常不可靠.
CSS/JavaScript的:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
Run Code Online (Sandbox Code Playgroud)
优点:
$(".hidden").缺点:
示例:https://jsfiddle.net/476oha8t/8/
.
使用Javascript:
$("element_to_hide").toggle(); // To hide and to unhide
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
示例:https://jsfiddle.net/cxcawkyk/1/
.
使用Javascript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
示例:https://jsfiddle.net/k0ukhmfL/
.
总的来说,我会说最好是hide()/ show()除非你特别需要它作为切换.我希望您发现此信息有用.
小智 6
只需为所有元素自己创建隐藏和显示方法,如下所示
Element.prototype.hide = function() {
this.style.display = 'none';
}
Element.prototype.show = function() {
this.style.display = '';
}
Run Code Online (Sandbox Code Playgroud)
在此之后,您可以将这些方法与通常的元素标识符一起使用,如下例所示:
document.getElementByTagName('div')[3].hide();
document.getElementById('thing').show();
Run Code Online (Sandbox Code Playgroud)
要么:
<img src="removeME.png" onclick="this.hide()">
Run Code Online (Sandbox Code Playgroud)
如果您在表格中使用它,请使用以下命令:-
<script type="text/javascript">
function showStuff(id, text, btn) {
document.getElementById(id).style.display = 'table-row';
// hide the lorem ipsum text
document.getElementById(text).style.display = 'none';
// hide the link
btn.style.display = 'none';
}
</script>
<td class="post">
<a href="#" onclick="showStuff('answer1', 'text1', this); return false;">Edit</a>
<span id="answer1" style="display: none;">
<textarea rows="10" cols="115"></textarea>
</span>
<span id="text1">Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</span>
</td>
Run Code Online (Sandbox Code Playgroud)
通过身份证
document.querySelector('#element-id').style.display = 'none';
Run Code Online (Sandbox Code Playgroud)
按类(单个元素)
document.querySelector('.element-class-name').style.display = 'none';
Run Code Online (Sandbox Code Playgroud)
按类(多个元素)
for (const elem of document.querySelectorAll('.element-class-name')) {
elem.style.display = 'none';
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我推荐Javascript,因为它相对快速且更具有可塑性.
<script>
function showStuff(id, text, btn) {
document.getElementById(id).style.display = 'block';
// hide the lorem ipsum text
document.getElementById(text).style.display = 'none';
// hide the link
btn.style.display = 'none';
}
</script>
<td class="post">
<a href="#" onclick="showStuff('answer1', 'text1', this); return false;">Edit</a>
<span id="answer1" style="display: none;">
<textarea rows="10" cols="115"></textarea>
</span>
<span id="text1">Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</span>
</td>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
820020 次 |
| 最近记录: |