Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在输入字段之前提取表格单元格中的文本_Javascript_Jquery - Fatal编程技术网

Javascript 在输入字段之前提取表格单元格中的文本

Javascript 在输入字段之前提取表格单元格中的文本,javascript,jquery,Javascript,Jquery,我有一些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="

我有一些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>
仅适用于某一点,因为它还显示


有没有一种方法可以将文本限制在

之前?

我想您需要的是


演示:

您可以更新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>

这是一个工作示例您可以
克隆
您的目标
TD
删除
包含不必要文本的
元素。现在,您可以轻松地从
TD
中获取
所需的文本。请阅读以下内容以供参考:

试试这个

$("#field1").keyup(function(){
    var xClone = $(this).parent().clone();
    xClone.find('div').remove();
    alert((xClone).text());
});

是时候做一些简单的JS了,因为jQuery不能很好地处理textnodes:

var text = this.parentNode.firstChild.nodeValue.trim();

将该文本包装在
span
标签中,并以该标签为目标,这就是检索未包装文本的方式。使用
.contents()
后,文本块将显示为它自己的节点。哦,我刚刚找到它!它只选择第一个元素(即文本到
)。TksWay使用您的长名称来打破stackoverflow css。有人现在真的很生气o
$(".mandatory").each(function(index,item){

     var msg=$(this).closest("td").find("span.msg").html();
     //do something with msg now 
});
$("#field1").keyup(function(){
    var xClone = $(this).parent().clone();
    xClone.find('div').remove();
    alert((xClone).text());
});
var text = this.parentNode.firstChild.nodeValue.trim();