![](/img/trans.png)
[英]How to automaticaly add an incrementing numeric id for each td elements in javascript
[英]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 </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>
`
您說您的內容沒有任何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 </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>
`
終於我解決了:
<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.