【发布时间】:2021-07-17 03:24:58
【问题描述】:
1- 我在一个表中有多个 tr,tr 中的每个 td 有 2 个跨度,一个输入有一个值,每个跨度可能会动态显示:块或显示:无。
2-我希望我得到 td 中的输入值,它有 2 个带显示的跨度:块,在我的示例中,输入结果必须选择为:input3,因为它是第一个 td 有 2 个带显示的跨度:块。
3- 这是我的表格示例:
var inputValue = $('.span1:visible:first, .span2:visible:first')
.parent()
.parent()
.find('input').val();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input value="input1">
<span class="span1" style="display:none">span1</span>
<span class="span2" style="display:block">span2</span>
</tr>
<tr>
</td>
<td>
<input value="input2">
<span class="span1" style="display:block">span1</span>
<span class="span2" style="display:none">span2</span>
</td>
</tr>
<tr>
<td>
<input value="input3">
<span class="span1" style="display:block">span1</span>
<span class="span2" style="display:block">span2</span>
</td>
</tr>
<tr>
<td>
<input value="input4">
<span class="span1" style="display:block">span1</span>
<span class="span2" style="display:block">span2</span>
</td>
</tr>
</table>
4- 我写了这段代码,但我知道这是错误的:
<script>
var inputValue = $('.span1:visible:first, .span2:visible:first').parent().parent().find('input').val();
</script>
5- 任何帮助 jquery 代码都可以做我想做的事吗?
【问题讨论】:
-
请澄清你是否真的想像你说的那样找到具有特定样式属性
"display:block"的那些,而不是一组可见的两个兄弟跨度,因为它们是完全不同的东西。 -
如果
<span class="newspan1" style="display:inline-block"> </span>上的类或可见性等发生变化,这是否重要或会如何影响您的问题/结果?