我正在处理由我的CMS生成的表单。表格在表格中生成,表格中大部分都没有ID或Classes来抓取和操纵事物。
以下是我正在使用的部分的示例:
<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>
我有一个问题显示在这一个之上,并且基于该输入是否是或者我希望能够隐藏/显示这一部分代码。
我唯一可以想到的是用一个语句隐藏这个问题就是使用标签的id然后以某种方式达到td的一个级别并将其设置为none。这样我就可以根据对上面问题的回答轻松切换jQuery的可见性。
有没有人知道这是否可行,或者我是否可以采用更简单的方法来解决这个问题?
答案 0 :(得分:2)
我唯一想到的就是用一个隐藏这个问题 声明是使用标签的id然后以某种方式达到一个 等级到td并将其显示为无。那样我就可以轻松了 根据对jQuery的响应,使用jQuery切换它的可见性 问题就在上面。
如果你想要特定元素的直接父元素,你可以在jQuery中使用parent()
函数:
// This would hide the parent element for your specific element
$('#4354-3-34-2324').parent().hide();
如果您需要超越它,可以使用closest()
函数遍历DOM以通过选择器查找最近的元素:
// This would hide the closest <td> element for your specific
$('#4354-3-34-2324').closest('td').hide();
由于您希望根据问题的结果触发此问题,因此您可以聆听特定的<textarea>
元素并确定它们何时更改并相应地显示/隐藏:
$(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();
}
});
答案 1 :(得分:1)
捕获click
本身的label
事件
$("#4354-3-34-2324").on('click', function(){
$(this).parent().hide();
});