我有这个html table其中有一列“日期”。我无法控制后端,因此我尝试使用 JavaScript 来操作它。
如果这些单元格没有唯一标识符(例如 .date_item
),我如何才能定位内部文本为“日期”的单元格下的所有单元格?
我的最终目标是通过forEach()
给他们上一个类。方法,如代码:
e.classList.add("myClass");
由于我是 JS 新手,我不知道如何在“日期”列下选择所有这些 td;我在任何类(class)/文章中都没有遇到过类似的情况,并且我所知道的使用 document.querySelector 进行选择对于没有任何基本标识符的对象来说是不够的。我相信我会从答案中学到东西。
如何定位这些元素以便我能够为它们添加一个类?
我了解通过每个 tr
中的索引来定位这些内容是一个合理的方向(唯一的?)。我可以以某种方式找到“日期”innerText 的列,以某种方式测量其索引,然后使用它来定位任何给定 tr
中具有该索引的所有列。 .
罗里的更新:
遗憾的是这不起作用:
$('table tbody tr td:nth-child(5)').addClass('foo').map(function() {
return $(this).text();
}).get();
document.querySelector(".foo").style.backgroundColor = "red";
最佳答案
假设date
列始终是表中的第五列,则可以使用:nth-child()
选择器按索引获取元素。然后你可以使用map()
将它们全部放入一个数组中。试试这个:
var dates = $('table tbody tr td:nth-child(5)').map(function() {
return $(this).text();
}).get();
console.log(dates);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table width="100%" border="1" class="MOallTable" cellspacing="0" cellpadding="0">
<!--headers-->
<tfoot valign="bottom">
<tr>
<td colspan="5"><img src="images/newSiteImage/blank.gif" width="1" height="10" alt=""></td>
</tr>
<tr>
<th align="right" colspan="6">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="35" style="border-style:solid;border-width:1px;border-color:#aaaaaa;">
<tbody>
<tr>
<td align="right" dir="rtl">
<font style="font-size:10px;font-family:arial;color:#29538D;">מסמך זה כולל מידע אישי רגיש המוגן על פי דיני הגנת הפרטיות. מסירת המידע לאחר עלולה להוות עבירה פלילית.</font>
</td>
</tr>
<tr>
<td align="right" dir="rtl">
<font style="font-size:10px;font-family:arial;color:#29538D;">מסמך זה אינו כולל את כל פרטי הזיהוי של הלקוח. על המסתמך על תוכנו לברר ולוודא את הזהות בין מציג המסמך ובין האדם אשר המידע במסמך מתייחס אליו.</font>
</td>
</tr>
</tbody>
</table>
</th>
</tr>
</tfoot>
<tbody>
<tr>
<td class="MOallHeaderTd"> </td>
<td class="MOallHeaderTd" id="borderPrint">שם הרופא/מטפל</td>
<td class="MOallHeaderTd" id="borderPrint">תחום שירות</td>
<td class="MOallHeaderTd" id="borderPrint">כתובת</td>
<td class="MOallHeaderTd" id="borderPrint">date</td>
<td class="MOallHeaderTd" id="borderPrint">שעות קבלה</td>
</tr>
<tr>
<td class="MOallVisitTd MOiconTd">
<img src="images/ok.png" style="cursor:pointer" border="0" onclick="onSubmitFromDoctor('033804001','מרפאת מאוחדת')" title="לחץ כאן לקביעת תור לרופא במרפאה זו">
</td>
<td class="MOallVisitTd"><a href="engine?templateKey=1500814347918&idorItemId=topMenu&templateName=services.txt&mainView=queue&programName=MRWBZMNSQ&eventType=doctorDetails&idNum=033804001&drName=%D7%90%D7%91%D7%92%D7%99%D7%9C+%D7%92%D7%93%D7%99%D7%90%D7%9C&mainExpertise=%D7%A2%D7%99%D7%A0%D7%99%D7%99%D7%9D&languages=%D7%90%D7%A0%D7%92%D7%9C%D7%99%D7%AA%2C%D7%A2%D7%91%D7%A8%D7%99%D7%AA%2C%D7%A6%D7%A8%D7%A4%D7%AA%D7%99%D7%AA&subDoctor=&clinicName=%D7%91%D7%99%D7%AA+%D7%A9%D7%9E%D7%A9+-+%D7%94%D7%92%D7%91%D7%A2%D7%94&clinicType=%D7%9E%D7%A8%D7%A4%D7%90%D7%AA+%D7%9E%D7%90%D7%95%D7%97%D7%93%D7%AA&street=%D7%94%D7%A8%D7%A7%D7%A4%D7%AA&houseNum=36&entrance=&city=%D7%91%D7%99%D7%AA+%D7%A9%D7%9E%D7%A9&clinicLocation=%D7%92%D7%91%D7%A2%D7%AA+%D7%A9%D7%A8%D7%AA&gender=%D7%96&phone=9906555-02&fax=02-9906550&receptionTime=19%3A00+14%3A00++++++++++++++++++++%D7%91&remark=%D7%91%D7%AA%D7%90%D7%A8%D7%99%D7%9A+07%2F08%2F17+%D7%9C%D7%90+%D7%A2%D7%95%D7%91%D7%93+%D7%9B%D7%9C+%D7%94%D7%99%D7%95%D7%9D&remark=%D7%97%D7%A8%D7%99%D7%92+%D7%91%D7%99%D7%95%D7%9D+14%2F08%2F17+%D7%A4%D7%A8%D7%98%D7%99%D7%9D+%D7%91%D7%A1%D7%A0%D7%99%D7%A3&remark=%D7%97%D7%A8%D7%99%D7%92+%D7%91%D7%99%D7%95%D7%9D+21%2F08%2F17+%D7%A4%D7%A8%D7%98%D7%99%D7%9D+%D7%91%D7%A1%D7%A0%D7%99%D7%A3&remark=%D7%91%D7%AA%D7%90%D7%A8%D7%99%D7%9A+28%2F08%2F17+%D7%9C%D7%90+%D7%A2%D7%95%D7%91%D7%93+%D7%9B%D7%9C+%D7%94%D7%99%D7%95%D7%9D&generalRemark=%D7%9E%D7%A7%D7%91%D7%9C+%D7%92%D7%9D+%D7%99%D7%9C%D7%93%D7%99%D7%9D&geoZone=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D+%D7%95%D7%94%D7%A1%D7%91%D7%99%D7%91%D7%94&setQueue=%D7%9B&drName=&idNum=&drExpertise=עיניים&zone=&city=&day1=1&day2=1&day3=1&day4=1&day5=1&day6=1&day7=1&time=&clinicType=&WSId=IedGuq-NAhNU1XLRksnZfw_&userName=1201526753&id=1201526753&requestType=02&drName=&idNum=null&receptionTime=&dName=&drExp=עיניים&cType=&geoZone=&rTime=&ccity="
onmouseover="this.style.color='#0082d0'" onmouseout="this.style.color='#004B8B'" style="color: rgb(0, 75, 139);">אבגיל גדיאל</a></td>
<td class="MOallVisitTd">עיניים</td>
<td class="MOallVisitTd">הרקפת 36 בית שמש</td>
<td class="MOallVisitTd" title="א' באב התשע"ז">24/07/17</td>
<td class="MOallVisitTd" dir="ltr" valign="top">
19:00 14:00 ב<br>
</td>
</tr>
<tr>
<td class="MOallVisitTd MOiconTd">
<img src="images/phone.png" title="לא ניתן לקבוע תור לרופא במרפאה זו.
לקביעת תור, יש לפנות טלפונית למרפאת הרופא
לחץ על שם הרופא לקבלת פרטים על הרופא והמרפאה">
</td>
<td class="MOallVisitTd"><a href="engine?templateKey=1500814347918&idorItemId=topMenu&templateName=services.txt&mainView=queue&programName=MRWBZMNSQ&eventType=doctorDetails&idNum=033804002&drName=%D7%90%D7%91%D7%92%D7%99%D7%9C+%D7%92%D7%93%D7%99%D7%90%D7%9C&mainExpertise=%D7%A2%D7%99%D7%A0%D7%99%D7%99%D7%9D&languages=%D7%A2%D7%91%D7%A8%D7%99%D7%AA&subDoctor=&clinicName=%D7%9E%D7%A8%D7%A4%D7%90%D7%94+%D7%A9%D7%9C+%D7%93%22%D7%A8+%D7%90%D7%91%D7%92%D7%99%D7%9C+%D7%92%D7%93%D7%99%D7%90%D7%9C&clinicType=%D7%9E%D7%A8%D7%A4%D7%90%D7%94+%D7%A4%D7%A8%D7%98%D7%99%D7%AA&street=%D7%93%D7%A8%D7%9A+%D7%A8%D7%91%D7%99%D7%9F+%D7%99%D7%A6%D7%97%D7%A7&houseNum=2&entrance=&city=%D7%91%D7%99%D7%AA+%D7%A9%D7%9E%D7%A9&clinicLocation=&gender=%D7%96&phone=9991876-02&fax=&receptionTime=13%3A00+09%3A30++++++++++++++++++++%D7%91&geoZone=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D+%D7%95%D7%94%D7%A1%D7%91%D7%99%D7%91%D7%94&setQueue=%D7%9C&drName=&idNum=&drExpertise=עיניים&zone=&city=&day1=1&day2=1&day3=1&day4=1&day5=1&day6=1&day7=1&time=&clinicType=&WSId=IedGuq-NAhNU1XLRksnZfw_&userName=1201526753&id=1201526753&requestType=02&drName=&idNum=null&receptionTime=&dName=&drExp=עיניים&cType=&geoZone=&rTime=&ccity="
onmouseover="this.style.color='#0082d0'" onmouseout="this.style.color='#004B8B'" style="color: rgb(0, 75, 139);">אבגיל גדיאל</a></td>
<td class="MOallVisitTd">עיניים</td>
<td class="MOallVisitTd">דרך רבין יצחק 2 בית שמש</td>
<td class="MOallVisitTd" title=""></td>
<td class="MOallVisitTd" dir="ltr" valign="top">
13:00 09:30 ב<br>
</td>
</tr>
<tr>
<td class="MOallVisitTd MOiconTd">
<img src="images/ok.png" style="cursor:pointer" border="0" onclick="onSubmitFromDoctor('033804003','מרפאת מאוחדת')" title="לחץ כאן לקביעת תור לרופא במרפאה זו">
</td>
<td class="MOallVisitTd"><a href="engine?templateKey=1500814347918&idorItemId=topMenu&templateName=services.txt&mainView=queue&programName=MRWBZMNSQ&eventType=doctorDetails&idNum=033804003&drName=%D7%90%D7%91%D7%92%D7%99%D7%9C+%D7%92%D7%93%D7%99%D7%90%D7%9C&mainExpertise=%D7%A2%D7%99%D7%A0%D7%99%D7%99%D7%9D&languages=%D7%90%D7%A0%D7%92%D7%9C%D7%99%D7%AA%2C%D7%A2%D7%91%D7%A8%D7%99%D7%AA%2C%D7%A6%D7%A8%D7%A4%D7%AA%D7%99%D7%AA&subDoctor=&clinicName=%D7%A7%D7%A0%D7%99%D7%95%D7%9F+%D7%A8%D7%91+%D7%A9%D7%A4%D7%A2-%D7%9E%D7%A8%D7%A4%D7%90%D7%AA+%D7%A4%D7%A0%D7%99%D7%A0%D7%94&clinicType=%D7%9E%D7%A8%D7%A4%D7%90%D7%AA+%D7%9E%D7%90%D7%95%D7%97%D7%93%D7%AA&street=%D7%A9%D7%9E%D7%92%D7%A8&houseNum=16&entrance=&city=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&clinicLocation=%D7%A7%D7%A0%D7%99%D7%95%D7%9F+%D7%A8%D7%91+%D7%A9%D7%A4%D7%A2&gender=%D7%96&phone=5376650-02&fax=02-5376624&receptionTime=18%3A30+14%3A30++++++++++++++++++++%D7%90&receptionTime=12%3A00+09%3A00++++++++++++++++++++%D7%92&receptionTime=19%3A00+15%3A00++++++++++++++++++++%D7%93&remark=%D7%97%D7%A8%D7%99%D7%92+%D7%91%D7%99%D7%95%D7%9D+27%2F07%2F17+%D7%A4%D7%A8%D7%98%D7%99%D7%9D+%D7%91%D7%A1%D7%A0%D7%99%D7%A3%D7%9D&remark=%D7%97%D7%A8%D7%99%D7%92+%D7%91%D7%99%D7%95%D7%9D+31%2F07%2F17+%D7%A4%D7%A8%D7%98%D7%99%D7%9D+%D7%91%D7%A1%D7%A0%D7%99%D7%A3%D7%9D&remark=%D7%91%D7%AA%D7%90%D7%A8%D7%99%D7%9A+01%2F08%2F17+%D7%9C%D7%90+%D7%A2%D7%95%D7%91%D7%93+%D7%9B%D7%9C+%D7%94%D7%99%D7%95%D7%9D&remark=%D7%97%D7%A8%D7%99%D7%92+%D7%91%D7%99%D7%95%D7%9D+03%2F08%2F17+%D7%A4%D7%A8%D7%98%D7%99%D7%9D+%D7%91%D7%A1%D7%A0%D7%99%D7%A3%D7%9D&remark=%D7%91%D7%AA%D7%90%D7%A8%D7%99%D7%9A+06%2F08%2F17+%D7%9C%D7%90+%D7%A2%D7%95%D7%91%D7%93+%D7%9B%D7%9C+%D7%94%D7%99%D7%95%D7%9D&remark=%D7%91%D7%AA%D7%90%D7%A8%D7%99%D7%9A+08%2F08%2F17+%D7%9C%D7%90+%D7%A2%D7%95%D7%91%D7%93+%D7%9B%D7%9C+%D7%94%D7%99%D7%95%D7%9D&geoZone=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D+%D7%95%D7%94%D7%A1%D7%91%D7%99%D7%91%D7%94&setQueue=%D7%9B&drName=&idNum=&drExpertise=עיניים&zone=&city=&day1=1&day2=1&day3=1&day4=1&day5=1&day6=1&day7=1&time=&clinicType=&WSId=IedGuq-NAhNU1XLRksnZfw_&userName=1201526753&id=1201526753&requestType=02&drName=&idNum=null&receptionTime=&dName=&drExp=עיניים&cType=&geoZone=&rTime=&ccity="
onmouseover="this.style.color='#0082d0'" onmouseout="this.style.color='#004B8B'" style="color: rgb(0, 75, 139);">אבגיל גדיאל</a></td>
<td class="MOallVisitTd">עיניים</td>
<td class="MOallVisitTd">שמגר 16 ירושלים</td>
<td class="MOallVisitTd" title="ד' באב התשע"ז">27/07/17</td>
<td class="MOallVisitTd" dir="ltr" valign="top">
18:30 14:30 א<br> 12:00 09:00 ג<br> 19:00 15:00 ד<br>
</td>
</tr>
<tr>
<td class="MOallVisitTd MOiconTd">
<img src="images/ok.png" style="cursor:pointer" border="0" onclick="onSubmitFromDoctor('030667001','מרפאת מאוחדת')" title="לחץ כאן לקביעת תור לרופא במרפאה זו">
</td>
<td class="MOallVisitTd"><a href="engine?templateKey=1500814347918&idorItemId=topMenu&templateName=services.txt&mainView=queue&programName=MRWBZMNSQ&eventType=doctorDetails&idNum=030667001&drName=%D7%90%D7%91%D7%95+%D7%A2%D7%A1%D7%9C%D7%94+%D7%A1%D7%90%D7%9C%D7%97&mainExpertise=%D7%A2%D7%99%D7%A0%D7%99%D7%99%D7%9D&languages=&subDoctor=&clinicName=%D7%A9%D7%92%D7%91+%D7%A9%D7%9C%D7%95%D7%9D&clinicType=%D7%9E%D7%A8%D7%A4%D7%90%D7%AA+%D7%9E%D7%90%D7%95%D7%97%D7%93%D7%AA&street=19+%D7%A9%D7%9B%D7%95%D7%A0%D7%94+8+%D7%91%D7%99%D7%AA&houseNum=&entrance=&city=%D7%A9%D7%92%D7%91-%D7%A9%D7%9C%D7%95%D7%9D&clinicLocation=&gender=%D7%96&phone=6351111-08&fax=08-6351112&receptionTime=11%3A00+09%3A00++++++++++++%D7%91-%D7%9C%D7%A1%D7%A8%D7%95%D7%92%D7%99%D7%9F&geoZone=%D7%93%D7%A8%D7%95%D7%9D&setQueue=%D7%9B&drName=&idNum=&drExpertise=עיניים&zone=&city=&day1=1&day2=1&day3=1&day4=1&day5=1&day6=1&day7=1&time=&clinicType=&WSId=IedGuq-NAhNU1XLRksnZfw_&userName=1201526753&id=1201526753&requestType=02&drName=&idNum=null&receptionTime=&dName=&drExp=עיניים&cType=&geoZone=&rTime=&ccity="
onmouseover="this.style.color='#0082d0'" onmouseout="this.style.color='#004B8B'">אבו עסלה סאלח</a></td>
<td class="MOallVisitTd">עיניים</td>
<td class="MOallVisitTd">19 שכונה 8 בית שגב-שלום</td>
<td class="MOallVisitTd" title="כ"ב באב התשע"ז">14/08/17</td>
<td class="MOallVisitTd" dir="ltr" valign="top">
11:00 09:00 ב-לסרוגין<br>
</td>
</tr>
<tr>
<td class="MOallVisitTd MOiconTd">
<img src="images/phone.png" title="לא ניתן לקבוע תור לרופא במרפאה זו.
לקביעת תור, יש לפנות טלפונית למרפאת הרופא
לחץ על שם הרופא לקבלת פרטים על הרופא והמרפאה">
</td>
<td class="MOallVisitTd"><a href="engine?templateKey=1500814347918&idorItemId=topMenu&templateName=services.txt&mainView=queue&programName=MRWBZMNSQ&eventType=doctorDetails&idNum=030667004&drName=%D7%90%D7%91%D7%95+%D7%A2%D7%A1%D7%9C%D7%94+%D7%A1%D7%90%D7%9C%D7%97&mainExpertise=%D7%A2%D7%99%D7%A0%D7%99%D7%99%D7%9D&languages=&subDoctor=&clinicName=%D7%9E%D7%A8%D7%A4%D7%90%D7%94+%D7%A9%D7%9C+%D7%93%22%D7%A8+%D7%90%D7%91%D7%95+%D7%A2%D7%A1%D7%9C%D7%94+%D7%A1%D7%90%D7%9C%D7%97&clinicType=%D7%9E%D7%A8%D7%A4%D7%90%D7%94+%D7%A4%D7%A8%D7%98%D7%99%D7%AA&street=%D7%A9%D7%9B%D7%95%D7%A0%D7%AA+%D7%90-%D7%98%D7%95%D7%A8&houseNum=&entrance=&city=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&clinicLocation=&gender=%D7%96&fax=&geoZone=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D+%D7%95%D7%94%D7%A1%D7%91%D7%99%D7%91%D7%94&setQueue=%D7%9C&drName=&idNum=&drExpertise=עיניים&zone=&city=&day1=1&day2=1&day3=1&day4=1&day5=1&day6=1&day7=1&time=&clinicType=&WSId=IedGuq-NAhNU1XLRksnZfw_&userName=1201526753&id=1201526753&requestType=02&drName=&idNum=null&receptionTime=&dName=&drExp=עיניים&cType=&geoZone=&rTime=&ccity="
onmouseover="this.style.color='#0082d0'" onmouseout="this.style.color='#004B8B'">אבו עסלה סאלח</a></td>
<td class="MOallVisitTd">עיניים</td>
<td class="MOallVisitTd">שכונת א-טור ירושלים</td>
<td class="MOallVisitTd" title=""></td>
<td class="MOallVisitTd" dir="ltr" valign="top">
</td>
</tr>
<tr>
<td class="MOallVisitTd MOiconTd">
<img src="images/phone.png" title="לא ניתן לקבוע תור לרופא במרפאה זו.
לקביעת תור, יש לפנות טלפונית למרפאת הרופא
לחץ על שם הרופא לקבלת פרטים על הרופא והמרפאה">
</td>
<td class="MOallVisitTd"><a href="engine?templateKey=1500814347918&idorItemId=topMenu&templateName=services.txt&mainView=queue&programName=MRWBZMNSQ&eventType=doctorDetails&idNum=011129001&drName=%D7%90%D7%91%D7%99%D7%A9%D7%A8+%D7%A8%D7%97%D7%9E%D7%99%D7%9D&mainExpertise=%D7%A2%D7%99%D7%A0%D7%99%D7%99%D7%9D&languages=%D7%A2%D7%A8%D7%91%D7%99%D7%AA%2C%D7%90%D7%A0%D7%92%D7%9C%D7%99%D7%AA%2C%D7%A2%D7%91%D7%A8%D7%99%D7%AA&subDoctor=&clinicName=%D7%9E%D7%A8%D7%A4%D7%90%D7%94+%D7%A9%D7%9C+%D7%93%22%D7%A8+%D7%90%D7%91%D7%99%D7%A9%D7%A8+%D7%A8%D7%97%D7%9E%D7%99%D7%9D&clinicType=%D7%9E%D7%A8%D7%A4%D7%90%D7%94+%D7%A4%D7%A8%D7%98%D7%99%D7%AA&street=%D7%A1%D7%9C%D7%95%D7%A8&houseNum=4&entrance=&city=%D7%A4%D7%AA%D7%97+%D7%AA%D7%A7%D7%95%D7%95%D7%94&clinicLocation=&gender=%D7%96&phone=8411215-053&phone=9319588-03&fax=03-9046848&receptionTime=11%3A30+08%3A00++++++++++++++++++++%D7%90&receptionTime=19%3A00+16%3A00++++++++++++++++++++%D7%92&receptionTime=10%3A30+08%3A00++++++++++++++++++++%D7%93&generalRemark=%D7%9C%D7%A4%D7%99+%D7%94%D7%96%D7%9E%D7%A0%D7%AA+%D7%AA%D7%95%D7%A8+%D7%9E%D7%A8%D7%90%D7%A9+%D7%91%D7%9E%D7%A7%D7%A8%D7%99%D7%9D+%D7%93%D7%97%D7%95%D7%A4%D7%99%D7%9D+%D7%A0%D7%90+%D7%9C%D7%A4%D7%A0%D7%95%D7%AA+%D7%9C%D7%9E%D7%96%D7%9B%D7%99%D7%A8%D7%95%D7%AA&geoZone=%D7%9E%D7%A8%D7%9B%D7%96&setQueue=%D7%9C&drName=&idNum=&drExpertise=עיניים&zone=&city=&day1=1&day2=1&day3=1&day4=1&day5=1&day6=1&day7=1&time=&clinicType=&WSId=IedGuq-NAhNU1XLRksnZfw_&userName=1201526753&id=1201526753&requestType=02&drName=&idNum=null&receptionTime=&dName=&drExp=עיניים&cType=&geoZone=&rTime=&ccity="
onmouseover="this.style.color='#0082d0'" onmouseout="this.style.color='#004B8B'">אבישר רחמים</a></td>
<td class="MOallVisitTd">עיניים</td>
<td class="MOallVisitTd">סלור 4 פתח תקווה</td>
<td class="MOallVisitTd" title=""></td>
<td class="MOallVisitTd" dir="ltr" valign="top">
11:30 08:00 א<br> 19:00 16:00 ג<br> 10:30 08:00 ד<br>
</td>
</tr>
</tbody>
</table>
请注意,我不得不 chop 您的 HTML,因为坦率地说,它太长了。 a href
中有太多重复,您可以轻松地进行 DRY - 或者更好的是,使用更好的 URL 结构。
关于javascript - 当缺少唯一标识符时,选择同一列中除一个之外的所有 td 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45268201/