如何用javascript搜索字符串然后添加到该ID?

时间:2016-02-19 10:30:00

标签: javascript string search add

我需要在表中查找字符串,但是表的内容是使用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&nbsp;&nbsp;</a>
   </th>
   <th nowrap="">
    <a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="createdtime">Created Time&nbsp;&nbsp;</a>
   </th>
   <th nowrap="" colspan="2">
    <a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="smownerid">Assigned To&nbsp;&nbsp;</a>
   </th>
  </tr>
</thead>

`

5 个答案:

答案 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元件

示例:

&#13;
&#13;
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;
&#13;
&#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&nbsp;&nbsp;</a>
   </th>
   <th nowrap="">
    <a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="createdtime">Created Time&nbsp;&nbsp;</a>
   </th>
   <th nowrap="" colspan="2">
    <a href="javascript:void(0);" class="listViewHeaderValues" data-nextsortorderval="ASC" data-columnname="smownerid">Assigned To&nbsp;&nbsp;</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>