我需要获取特定<td>的数据,但我没有针对该特定<td>的任何id或name。如何获取该<td>的内容
例如:
<table>
<tr><td>name</td><td>praveen</td></tr>
<tr><td>designation</td><td>software engineer</td></tr>
</table>有没有可能从这个表中得到“指定”的值..我需要使用javascript提取“软件工程师”这个词。
发布于 2008-11-03 08:29:32
我更喜欢使用jQuery来完成这类任务的所有繁重任务。
例如,下面的函数将返回您正在搜索的相同类型的下一个元素的文本:
function GetNextChildText(tagToFind, valueToFind) {
var nextText = "";
$(tagToFind).each(function(i) {
if ($(this).text() == valueToFind) {
if ($(this).next() != null && $(this).next() != undefined) {
nextText = $(this).next().text();
}
}
});
return (nextText);
}因此,对于您的示例表,您返回指定的调用可能是:
var designationText = GetNextChildText('td', 'designation');结果是变量designationText将包含值'software engineer‘。
发布于 2008-11-03 08:14:03
一个快速的解决方案:
function GetTdContent(label)
{
var TDs = document.getElementsByTagName("TD");
var foundFlag = false;
for (i = 0; i < TDs.length; i++)
{
if (foundFlag) return TDs[i].innerHTML;
foundFlag = TDs[i].innerHTML.toLower() == label.toLower();
}
}其他地方的呼叫:
var value = GetTdContent("designation");解释:
该函数迭代文档中的所有TD。如果它找到一个带有给定标签的标签,比如"designation",它会再次循环并返回下一个TD内容。
这对您的源HTML做了一些假设。不过,如果你知道你的数据,那就足够了。
发布于 2008-11-03 07:32:48
大致是这样的:
(没有经过测试,只是快速代码给出了一个想法)
var tables = document.getElementById('TABLE'); // instead of document.all.tag
var rows;
var cells;
var maxCells = 1;
var designation;
if (tables) {
for (var t=0; t<tables.length; t++) {
rows = tables[t].all.tags('TR');
if (tables[t].all.tags('TABLE').length == 0) {
for (var r=0; r<rows.length; r++) {
if (rows[r].innerText != '') {
cells = rows[r].all.tags('TD');
for (var c=0; c<cells.length; c++) {
if (cells[c].innerText == 'designation' && c<(cells.length-1)) {
designation = cells[c+1].innerText;
}
}
}
}
}
}
}由于document.all是特定于IE的,因此您应该使用getElementById用户,并将以下内容设置为redefine that function for IE
if (/msie/i.test (navigator.userAgent)) //only override IE
{
document.nativeGetElementById = document.getElementById;
document.getElementById = function(id)
{
var elem = document.nativeGetElementById(id);
if(elem)
{
//make sure that it is a valid match on id
if(elem.attributes['id'].value == id)
{
return elem;
}
else
{
//otherwise find the correct element
for(var i=1;i<document.all[id].length;i++)
{
if(document.all[id][i].attributes['id'].value == id)
{
return document.all[id][i];
}
}
}
}
return null;
};
}https://stackoverflow.com/questions/258056
复制相似问题