簡體   English   中英

如何使用javascript搜索 <td> 為字符串,然后添加到該ID?

[英]How with javascript search in <td> for string and then add to that id?

我需要在表中查找字符串,但是表的內容是使用foreach尚未分配ID生成的。 我想找到包含文本的<td> ,然后將其添加到該<td> id中,然后使用它。 有可能嗎?

-幾個小時后編輯-
這要困難得多。 我有thead並在里面尋找!搜索這個。 我只需要找出它在thead中的位置(第一,第二,第三,第四等),這樣我就可以繼續處理整個專欄。

!! SEARCH THIS的示例代碼:

<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>

`

您說您的內容沒有任何ID,但是您說必須將字符串添加到ID中。

你在說誰的身份證?

有關信息,即使在foreach中,您也可以使用簡單的計數器為您的內容分配ID:

int i = 0;
foreach(foo in bar)
{
    <td id=i>some content</td>
    i++;
}

通過document.querySelectorAll('td').length;計算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') } } 
 #yourID{ color: red; font-weight: bold } 
 <table> <tr> <td>Jill</td> <td>Smith</td> <td>50</td> </tr> <tr> <td>Eve</td> <td>Jackson</td> <td>94</td> </tr> </table> 

這要困難得多。 我有thead並在里面尋找!搜索這個。 我只需要找出它在thead中的位置(第一,第二,第三,第四等),這樣我就可以繼續處理整個專欄。

!! SEARCH THIS的示例代碼:

<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>

`

終於我解決了:

<script type="text/javascript">
        jQuery( document ).ready(function( $ ) {
          var orderColumns = $('a').filter(':contains(SEARCHED STRING)').parent().index();
        });
        </script>

您可以使用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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM