有没有一种方法来定位前一个元素?
我正在处理由CMS生成的表单。该表格在表格中生成,大多数情况下,该表格无法用ID或类来抓取和操作事物。有没有一种方法来定位前一个元素?
这里是我的工作的部分的示例:
<tr>
<td>
<label class="wrappable" id="4354-3-34-2324">
<span class="explicit">
"Give me your answer"
</span>
</label>
<br/>
<span>
<textarea></textarea>
</span>
</br>
</td>
</tr>
我有一个问题,表明上述这一个,并基于该输入是yes或no我希望能够隐藏/显示此位代码。
我唯一能想到用一个声明隐藏这个问题的唯一方法就是使用标签的id,然后以某种方式达到td的水平并将其设置为none。这样,我可以根据对上面问题的回应,轻松地将它的可见性与jQuery切换。
有没有人知道这是可能的,或者是否有更简单的方法可以解决这个问题?
我能想到的隐藏这个问题,全部用一个 声明的唯一的事情就是用标签的ID,然后莫名其妙地达到了 水平的TD和设置它的显示器无法比拟的。这样,我可以很容易地 根据对上面的问题 的回应基于jQuery切换其可见性。
如果你想有一个特定元素的直接父,你可以在jQuery中使用parent()
功能:
// This would hide the parent element for your specific element
$('#4354-3-34-2324').parent().hide();
如果你需要超越的是,你可以使用closest()
功能窜动
// This would hide the closest <td> element for your specific
$('#4354-3-34-2324').closest('td').hide();
既然你要根据你的问题的结果来触发此,你可以听您的具体:DOM来通过选择找一个最近的元素种元素和确定它们何时发生变化,显示/隐藏相应:
$(document).on('change','textarea',function(){
// When a text area has changed, check it's value
var text = $(this).val();
// Use the text here to determine how to handle what you need
if(condition){
// Hide the nearest <td> if your condition is met
$(this).closest('td').hide();
}
});
谢谢一堆!最接近的'td'选择就像一个魅力。 – HisPowerLevelIsOver9000
夺click
事件为label
本身
$("#4354-3-34-2324").on('click', function(){
$(this).parent().hide();
});
只为好奇:到底是'' ??什么 –
你想得到他的父元素,你可以用'.parent()'来做。 –
@MarcosPérezGude我的坏,胖胖的指弹键盘!应该只是一个普通的
– HisPowerLevelIsOver9000