我有一些表格的HTML: -
<table>
<tr>
<td>Text for input 1<br/><div>Lots of textual data</div><input id="field1" class="mandatory"/></td>
<td>Text for input 2<br/><input id="field2" class="mandatory"/></td?
<td>Text for input 3<br/><input id="field3"/></td>
</tr>
</table>
(但还有更多字段和行)。
我正在遍历强制类,并且在输入字段为空的情况下,我想显示<br/>
之前的文本,而不是其他任何内容。
使用: -
$(this).parent().text();
仅适用于某一点,因为它还会在<div>
有没有办法可以将文字限制在<br/>
之前的文字?
答案 0 :(得分:2)
答案 1 :(得分:0)
您可以更新HTML标记,以使用特殊的css类将您的消息保存在span标记中,您可以使用它来更轻松地选择jQuery。
<table>
<tr>
<td><span class="msg">Text for input 1</span><br/>
<div>Lots of textual data</div><input id="field1" class="mandatory"/>
</td>
</tr>
</table>
现在使用closest
方法获取父td并使用find
方法获取范围
$(".mandatory").each(function(index,item){
var msg=$(this).closest("td").find("span.msg").html();
//do something with msg now
});
以下是工作示例http://jsbin.com/oDUPujOl/1/
答案 2 :(得分:0)
您可以clone
您的目标TD
和remove
elements
带有不必要的文字。现在,您可以轻松地从required text
获取TD
。如需参考,请阅读:.clone()
试试这个,
$("#field1").keyup(function(){
var xClone = $(this).parent().clone();
xClone.find('div').remove();
alert((xClone).text());
});
答案 3 :(得分:0)