Javascript 如何循环到表中的文本元素
问题 我想使用javascript收集所有表数据,并发送回应用程序的某些部分 htmlJavascript 如何循环到表中的文本元素,javascript,angularjs,Javascript,Angularjs,问题 我想使用javascript收集所有表数据,并发送回应用程序的某些部分 html <table> <tbody> <tr> <td> <span>hello</span> </td> <td> <ul> <li>1<
<table>
<tbody>
<tr>
<td>
<span>hello</span>
</td>
<td>
<ul>
<li>1<span>:2000</span></li>
<li>2<span>:3000</span></li>
<li>
<span>link</span>
<span>
<a href=''>failed login</a>
</span>
</li>
</ul>
</td>
</tbody>
</table>
提前感谢。您可以使用如下递归函数。没有标准化,您可能希望删除多余的空白,并在每个元素的文本之间插入空格
// Get the text within an element
// Doesn't do any normalising, returns a string
// of text as found.
function getTextRecursive(element) {
var text = [];
var el, els = element.childNodes;
for (var i=0, iLen=els.length; i<iLen; i++) {
el = els[i];
// May need to add other node types here that you don't want the text of
// Exclude script element content
if (el.nodeType == 1 && el.tagName && el.tagName.toLowerCase() != 'script') {
text.push(getTextRecursive(el));
// If working with XML, add nodeType 4 to get text from CDATA nodes
} else if (el.nodeType == 3) {
// Deal with extra whitespace and returns in text here if required
text.push(el.data);
}
}
// Insert a space between each text string and return
// a single string
return text.join(' ');
}
//获取元素中的文本
//不执行任何规格化,返回字符串
//找到的文本的数量。
函数getTextRecursive(元素){
var text=[];
var el,els=element.childNodes;
对于(var i=0,iLen=els.length;i试试这个
$(document).ready(function() {
var texts = [];
$("table tr td").each(function(i, elem) {
texts.push($.trim($(elem).text()))
});
var str = texts.join(':').replace(/(\r\n|\n|\r)/gm, "")
alert(str);
});
见工作示例:-
thansks您看到了吗?只是获取表的名称?您不知道如何按标记名选择元素吗?以及您没有使用getElementsByTag名称或查询选择器的原因?也就是说,如果OP使用的是jQuery
$(document).ready(function() {
var texts = [];
$("table tr td").each(function(i, elem) {
texts.push($.trim($(elem).text()))
});
var str = texts.join(':').replace(/(\r\n|\n|\r)/gm, "")
alert(str);
});