Я новичок в использовании Tampermonkey и пытаюсь получить имя сотрудника из таблицы, в которой строка содержит data-akfk-type = "event">AHOD
Например, в таблице ниже это должно возвращать 'Clare' и 'Ivan', поскольку каждая из этих строк имеет data-akfk-type = "event">AHOD.
В таблице всегда будет две строки, содержащие 'AHOD', но они могут находиться в любой строке таблицы.
<table id = "iCalTbl" class = "groupCalendar">
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" id = "[email protected]">
<div class = "rowHeaderCell"><a href = "#" title = "Display employee details"
data-akfk-type = "employee" id = "[email protected]">
Clare</a> <img src = "images/flags/country/spain.png">
</div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "18" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<!-- ... -->
<td data-dp-col = "29" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain">
<div data-akfk-type = "cell" data-dp-employeeid = "[email protected]">
<div class = "shiftlightblue eventDailyContainer" data-akfk-type = "eventContainer">
<span id = "event_1601787" data-akfk-type = "event">AHOD</span></div>
</div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
</tr>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" id = "[email protected]">
<div class = "rowHeaderCell"><a href = "#" title = "Display employee details"
data-akfk-type = "employee" id = "[email protected]">
Sally</a> <img src = "images/flags/country/united_arab_emirates.png">
</div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "18" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "29" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
</tr>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" id = "[email protected]">
<div class = "rowHeaderCell"><a href = "#" title = "Display employee details"
data-akfk-type = "employee" id = "[email protected]">Ivan</a> <img src = "images/flags/country/italy.png">
</div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "18" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<!-- ... -->
<td data-dp-col = "29" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain">
<div data-akfk-type = "cell" data-dp-employeeid = "[email protected]">
<div class = "shiftlightblue eventDailyContainer" data-akfk-type = "eventContainer">
<span id = "event_1601789" data-akfk-type = "event">
AHOD</span></div>
</div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
</tr>
</table>
Я пробовал:
document.getElementsByClassName("groupCalendar")[0].textContent
что дает мне весь текстовый контент
" 000102030405060708091011121314151617181920212223Clare AHOD Sally Ivan AHOD "
Затем использовал split на 'AHOD', чтобы попытаться получить значение первого значения путем разделения.
Я подозреваю, что мне нужно сузить поиск до элемента DOM таблицы, а не всей таблицы. Затем возьмите и укажите в строке, которая соответствует поиску.
Я не знаю, как найти по ключевому слову 'AHOD' и узнать имя этого сотрудника?
Спасибо (мой первый пост, так что ошибка новичка)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вам нужно пройти через каждый tr, см. код ниже
var results = '',
trs = document.getElementsByTagName('tr');
for (var i = 0; i < trs.length; i++) {
if (trs[i].innerHTML.indexOf('data-akfk-type = "event">AHOD') > -1) {
results += trs[i].getElementsByTagName('a')[0].textContent + "\n";
}
}
console.info("Results: \n" + results)<table>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" style = "white-space:nowrap;" id = "[email protected]">
<div class = "cell rowHeaderCell" style = "width: 148px;"><a href = "#" title = "Display employee details" onclick = "iCal_showEmployeeInfo(this,event);return false;" data-akfk-type = "employee" id = "[email protected]">Clare</a> <img height = "16" width = "20" src = "images/flags/country/spain.png" alt = "Spain">
</div>
</td>
<td data-dp-col = "0" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "3" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "4" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "5" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "6" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "7" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "8" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "9" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "10" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "11" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "12" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "13" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "14" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "15" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "16" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "17" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "18" class = "tblCalendDailyViewMain iCalTblCellNow" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain iCalTblCellNow" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "20" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "21" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "22" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "23" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "24" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "25" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "26" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "27" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "28" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "29" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain" colspan = "16" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" data-akfk-type = "cell" data-dp-employeeid = "[email protected]" style = "width:255px">
<div class = "shiftlightblue eventDailyContainer" data-akfk-type = "eventContainer" style = "height:1.6em;padding-top:0.6em"><span id = "event_1601787" data-akfk-type = "event">AHOD</span></div>
</div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "32" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
</tr>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" style = "white-space:nowrap;" id = "[email protected]">
<div class = "cell rowHeaderCell" style = "width: 148px;"><a href = "#" title = "Display employee details" onclick = "iCal_showEmployeeInfo(this,event);return false;" data-akfk-type = "employee" id = "[email protected]">Sally</a> <img height = "16" width = "20" src = "images/flags/country/united_arab_emirates.png"
alt = "United Arab Emirates"></div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "3" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "4" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "5" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "6" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "7" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "8" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "9" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "10" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "11" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "12" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "13" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "14" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "15" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "16" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "17" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "18" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "20" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "21" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "22" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "23" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "24" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "25" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "26" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "27" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "28" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "29" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "32" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "33" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "34" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "35" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "36" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "37" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "38" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "39" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "40" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "41" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "42" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "43" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "44" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "45" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "46" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "47" class = "tblCalendDailyViewMain" style = "border-left:1px solid #BEC7CC">
<div style = "width:15px"></div>
</td>
<td data-dp-col = "48" class = "tblCalendDailyViewMain" style = "border-left: 1px solid rgb(190, 199, 204);">
<div style = "width:15px"></div>
</td>
</tr>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow" style = "">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" style = "white-space:nowrap;" id = "[email protected]">
<div class = "cell rowHeaderCell" style = "width: 148px;"><a href = "#" title = "Display employee details" onclick = "iCal_showEmployeeInfo(this,event);return false;" data-akfk-type = "employee" id = "[email protected]">Ivan</a> <img height = "16" width = "20" src = "images/flags/country/italy.png" alt = "Italy"></div>
</td>
<td data-dp-col = "0" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "3" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "4" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "5" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "6" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "7" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "8" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "9" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "10" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "11" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "12" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "13" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "14" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "15" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "16" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "17" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "18" class = "tblCalendDailyViewMain iCalTblCellNow" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain iCalTblCellNow" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "20" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "21" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "22" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "23" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "24" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "25" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "26" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "27" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "28" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "29" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain" colspan = "16" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" data-akfk-type = "cell" data-dp-employeeid = "[email protected]" style = "width:255px">
<div class = "shiftlightblue eventDailyContainer" data-akfk-type = "eventContainer" style = "height:1.6em;padding-top:0.6em"><span id = "event_1601789" data-akfk-type = "event">AHOD</span></div>
</div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
<td data-dp-col = "32" class = "tblCalendDailyViewMain" style = "vertical-align:top;border-left:1px solid #BEC7CC">
<div class = "cell" style = "width:15px"> </div>
</td>
</tr>
</table>Используйте jQuery для лазерного нацеливания на узлы "AHOD", а затем просмотрите дерево, чтобы найти нужные данные:
var ahodNodes = $("span[data-akfk-type='event']:contains('AHOD')");
//-- Get the desired related text for each:
ahodNodes.each ( (J, zNode) => {
var parentRow = $(zNode).closest ("tr.iCalTblRow");
var employeeCell = parentRow.find (".iCalTblEmployeeCell");
var employeeName = employeeCell.text ().trim ();
console.info ("employeeName: ", employeeName);
} );
Это также упрощает переход к страницам, управляемым AJAX (подробнее ниже).
A полный рабочий сценарий (это просто часть над блоком ******). :
Чтобы увидеть это в действии, запустите фрагмент кода.
// ==UserScript==
// @name _Get AHOD employees
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// @grant GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.
/* global $ */
/* eslint-disable no-multi-spaces */
var ahodNodes = $("span[data-akfk-type='event']:contains('AHOD')");
//-- Get the desired related text for each:
ahodNodes.each ( (J, zNode) => {
var parentRow = $(zNode).closest ("tr.iCalTblRow");
var employeeCell = parentRow.find (".iCalTblEmployeeCell");
var employeeName = employeeCell.text ().trim ();
console.info ("employeeName: ", employeeName);
} );
/********************************************************************
******* EVERYTHING below this block is simulated target page. *******
******* It's NOT part of the userscript. *******
********************************************************************/<script src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<table id = "iCalTbl" class = "groupCalendar">
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" id = "[email protected]">
<div class = "rowHeaderCell"><a href = "#" title = "Display employee details"
data-akfk-type = "employee" id = "[email protected]">
Clare</a> <img src = "images/flags/country/spain.png">
</div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "18" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<!-- ... -->
<td data-dp-col = "29" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain">
<div data-akfk-type = "cell" data-dp-employeeid = "[email protected]">
<div class = "shiftlightblue eventDailyContainer" data-akfk-type = "eventContainer">
<span id = "event_1601787" data-akfk-type = "event">AHOD</span></div>
</div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
</tr>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" id = "[email protected]">
<div class = "rowHeaderCell"><a href = "#" title = "Display employee details"
data-akfk-type = "employee" id = "[email protected]">
Sally</a> <img src = "images/flags/country/united_arab_emirates.png">
</div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "18" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "29" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
</tr>
<tr id = "[email protected]_data_row" data-dp-employeeid = "[email protected]" class = "iCalTblRow">
<td data-dp-col = "0" class = "iCalTblCell iCalTblEmployeeCell" id = "[email protected]">
<div class = "rowHeaderCell"><a href = "#" title = "Display employee details"
data-akfk-type = "employee" id = "[email protected]">Ivan</a> <img src = "images/flags/country/italy.png">
</div>
</td>
<td data-dp-col = "1" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "2" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
<td data-dp-col = "18" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<td data-dp-col = "19" class = "tblCalendDailyViewMain iCalTblCellNow">.</td>
<!-- ... -->
<td data-dp-col = "29" class = "tblCalendDailyViewMain">.</td>
<td data-dp-col = "30" class = "tblCalendDailyViewMain">
<div data-akfk-type = "cell" data-dp-employeeid = "[email protected]">
<div class = "shiftlightblue eventDailyContainer" data-akfk-type = "eventContainer">
<span id = "event_1601789" data-akfk-type = "event">
AHOD</span></div>
</div>
</td>
<td data-dp-col = "31" class = "tblCalendDailyViewMain">.</td>
<!-- ... -->
</tr>
</table>// ==UserScript==
// @name _Get AHOD employees
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.
/* global $, waitForKeyElements */
/* eslint-disable no-multi-spaces */
waitForKeyElements ("span[data-akfk-type='event']:contains('AHOD')", getEmployeeName);
function getEmployeeName (jNode) {
var parentRow = jNode.closest ("tr.iCalTblRow");
var employeeCell = parentRow.find (".iCalTblEmployeeCell");
var employeeName = employeeCell.text ().trim ();
console.info ("employeeName: ", employeeName);
}
Я использовал этот код (см. Ниже), но также изучу другие предложения и постараюсь извлечь из них урок:
var results = '',
trs = document.getElementsByTagName('tr');
for (var i = 0; i < trs.length; i++) {
if (trs[i].innerHTML.indexOf('data-akfk-type = "event">AHOD') > -1) {
results += trs[i].getElementsByTagName('a')[0].textContent + "\n";
}
}
console.info("Results: \n" + results)
Спасибо за вашу помощь, очень признателен.
Добро пожаловать в Stackoverflow. Хорошо включать код, но его много, и я отформатировал его так, чтобы он был удобочитаемым. Может быть, попробуйте включить достаточно кода, чтобы проиллюстрировать вашу проблему ... в этом случае я сомневаюсь, что нужна была полная таблица HTML?