我有一个表单,里面有span元素和input text元素,我要把js操作把span隐藏,吧text显示,具体应该怎么做,
PS.我的表单是foreach获得的,有N个表单,我用button onclick=“modify(this)”,取到了button对象。
function modify(btn) {
var f = $(btn).closest('form');//button所在表单
//找到此表单下的输入框显示,span隐藏
f.find(':text').show();
f.find('span').hide();
}
找到所有元素隐藏不就可以了嘛
要么直接标签选择 显示和隐藏 ,要么就是定义id 来hide(),show();;2楼方式正解, 取到当前的对象里的表单form,然后find()到表单的text,span属性来显示隐藏
给span元素定义一个class或者是唯一的id,然后在js里面获取class或者id,直接hide()隐藏就行了。
<form action="">
<span>span11</span>
<span>span12</span>
<span>span13</span>
<input type="text" value="input11">
<input type="text" value="input12">
<input type="text" value="input13">
<input type="button" onclick="modify(this);" value="按钮">
</form>
<form action="">
<span>span21</span>
<span>span22</span>
<span>span23</span>
<input type="text" value="input21">
<input type="text" value="input22">
<input type="text" value="input23">
<input type="button" onclick="modify(this);" value="按钮">
</form>
<form action="">
<span>span31</span>
<span>span32</span>
<span>span33</span>
<input type="text" value="input31">
<input type="text" value="input32">
<input type="text" value="input33">
<input type="button" onclick="modify(this);" value="按钮">
</form>
<script type="text/javascript">
function modify(btn){
var form = btn.parentElement;
for (var i = 0; i < form.children.length; i++) {
if (form.children[i].tagName == "SPAN") {
form.children[i].style.visibility = "hidden";
}
if (form.children[i].tagName == "INPUT" && form.children[i].type == "text") {
form.children[i].style.visibility = "visible";
}
}
}
</script>