我需要检索只有id
文字内容的<td>
的{{1}}。
例如:
<td>
如果我知道文本“Hello world”,是否可以检索.....
<tr>
<td id='hey'>Hello world!</td>
</tr>
....
的{{1}}?
/ * **** / 感谢所有人!我会尽快尝试提供的解决方案!!只是为了解释我正在使用OBIEE 11g而我正在尝试编写一个脚本来将格式条件添加到不支持的总计。直到现在我想出了这个解决方案:
id
因此,在这种情况下,如果数字高于阈值,则总计将被着色。 我请求您的帮助尝试定义要在数组中搜索的列,以使其对用户更简单。我的意思是如果用户想要格式化名为Turnover的列,它将在脚本中添加他需要的列。
我会尝试你的建议! 我会告诉你的!
干杯!
答案 0 :(得分:5)
这是一个解决方案,它只匹配完全匹配而不仅仅包含文本,此搜索在第一次匹配后不会停止,但会一直持续到没有更多要搜索的元素
HTML
<table>
<thead></thead>
<tbody>
<tr>
<td id='hey'>Hello world!</td>
<td id='hey2'>Hello world 2!</td>
<td id='hey3'>Hello world 3!</td>
</tr>
</tbody>
</table>
的Javascript
var search = "Hello world!";
Array.prototype.forEach.call(document.getElementsByTagName("td"), function (td) {
if (td.textContent === search) {
alert(td.id);
}
});
上
如果您希望解决方案在文本中进行搜索并在第一次匹配后停止,那么您可以执行此操作
var search = "Hello world!";
Array.prototype.some.call(document.getElementsByTagName("td"), function (td) {
if (td.textContent.indexOf(search) !== -1) {
alert(td.id);
return true;
}
return false;
});
上
答案 1 :(得分:2)
试试这个:
var searchString = "Hello world!";
var tds = document.getElementsByTagName("td");
[].forEach.call(tds, function (td) {
if (td.textContent.indexOf(searchString) > -1) { // For exact match use td.textContent === searchString
alert(td.id);
}
});
请参阅兼容性:
答案 2 :(得分:2)
是的,我的“没有JQuery”非常粗糙,但这里有:
var matchedId;
var elements = document.getElementsByTagName("td");
for(var i = 0; i < elements.length; i++){
var element = elements[i];
if(element.innerHTML.indexOf("Hello world!") != -1){
matchedId = element.id;
break;
}
}
答案 3 :(得分:2)
jQuery提供:contains
选择器:
$('td:contains("Hello world!")')[0].id
如果不这样做,你需要手动完成:
var tds = document.getElementsByTagName('td');
var id;
outer: for(var i = 0; i < tds.length; i++) {
var td = tds[i];
for(var j = 0; j < td.childNodes.length; j++) {
var child = td.childNodes[j];
if(child.nodeType === 3 && child.nodeValue.indexOf('Hello world!') !== -1) {
id = td.id;
break outer;
}
}
}
请注意,如果您不希望与:contains
具有相同级别的兼容性,请检查td.textContent.indexOf('Hello, world!')
。
答案 4 :(得分:1)
您可以执行以下操作:
var tdarr = document.getElementsByTagName("td");
for (var i = 0; i < tdarr.length; i++) {
if (tdarr[i].innerHTML === "Hello world!") {
alert(tdarr[i].id);
}
}
答案 5 :(得分:0)
for(var td =0; td < tds.length;td++){
//alert(tds[td].textContent);
if(tds[td].textContent == colonna[0]){
var id = tds[td].id;
var numcol = id.substring(id.lastIndexOf("_")+1,id.length);
colonna[4] = parseInt(numcol);
td = tds.length;
}
}
感谢您的建议!!
干杯!