我需要在表中查找字符串,但是表的内容是使用foreach生成的,未分配id。我想查找包含文本的<td>
,然后我需要添加到<td>
个ID,然后使用它。这有可能吗?
---几小时后编辑 -
这要困难得多。我有thead并寻求它!!搜索这个。
我只需要找到它在thead中的位置(第1,第2,第3,第4等),所以我可以继续使用整个列。
示例代码!!搜索: `
<thead>
<tr class="listViewHeaders">
<th width="5%">
<input type="checkbox" id="listViewEntriesMainCheckBox">
</th>
<th nowrap="">
<a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="cf_835">!!SEARCH THIS </a>
</th>
<th nowrap="">
<a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="createdtime">Created Time </a>
</th>
<th nowrap="" colspan="2">
<a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="smownerid">Assigned To </a>
</th>
</tr>
</thead>
`
答案 0 :(得分:0)
您说您的内容没有任何ID但是您说您必须将该字符串添加到ID。
你在说什么?
有关信息,即使是在foreach中,您也可以使用简单的计数器为您的内容分配ID:
int i = 0;
foreach(foo in bar)
{
<td id=i>some content</td>
i++;
}
答案 1 :(得分:0)
按td
计算document.querySelectorAll('td').length;
元素的数量,然后在每个td
内循环并搜索,如果td
等于您的string
将属性ID设置为此td元件
示例:
var len = document.querySelectorAll('td').length;
for (var i=0; i < len; i++){
if ( document.querySelectorAll('td')[i].innerHTML == "Eve"){
document.querySelectorAll('td')[i].setAttribute('id', 'yourID')
}
}
&#13;
#yourID{
color: red;
font-weight: bold
}
&#13;
<table>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
&#13;
答案 2 :(得分:0)
这要困难得多。我有thead并寻求它!!搜索这个。 我只需要找到它在thead中的位置(第1,第2,第3,第4等),所以我可以继续使用整个列。
示例代码!!搜索: `
<thead>
<tr class="listViewHeaders">
<th width="5%">
<input type="checkbox" id="listViewEntriesMainCheckBox">
</th>
<th nowrap="">
<a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="cf_835">!!SEARCH THIS </a>
</th>
<th nowrap="">
<a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="createdtime">Created Time </a>
</th>
<th nowrap="" colspan="2">
<a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="smownerid">Assigned To </a>
</th>
</tr>
</thead>
`
答案 3 :(得分:0)
最后我解决了它:
<script type="text/javascript">
jQuery( document ).ready(function( $ ) {
var orderColumns = $('a').filter(':contains(SEARCHED STRING)').parent().index();
});
</script>
答案 4 :(得分:-1)
您可以使用 XPATH 评估document
并随后处理该元素。
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
var element = getElementByXpath("//td[contains(text(),'Eve')]");
element.setAttribute('id', 'someId-' + Math.floor((Math.random() * 100) + 1))
console.log(element);
<table>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>