سوال خود را بپرسید

توضیحات بخش

rss
سوال و جواب برای متخصصان و علاقه مندان به برنامه نویسی در همه زبان ها و همه پلت فرم ها

آمار بخش

کاربران 29
سوال ها 71
پاسخ ها 80
نظر سنجی ها 0

برترین کاربر ها

بیشترین تگ ها

1

پشتیبانی نکردن Internet Explorer 11 از closest

در جاوا اسکریپت وقتی می خواهیم به یک جد (ancestor) از یک المان برسیم، می توانیم از closest استفاده کنیم. برای مثال اگر کد HTML زیر را داشته باشیم :

<table>
<tr>
<td><strong id="cell1">سلول 1</strong></td>
<td>سلول 2</td>
<td>سلول 3</td>
</tr>
<tr>
<td><strong>سلول 4</strong></td>
<td>سلول 5</td>
<td>سلول 6</td>
</tr>
</table>

و المان فعلی cell1 باشد و بخواهیم به اولین td بالا سر این المان برسیم از کد زیر استفاده می کنیم:

cell1.closest('td')

این روش در بعضی از مرورگرها کار نمی کند مانند Internet Explorer 11 .
آیا راه حلی برای انجام چنین کاری در این مرورگرها وجود دارد؟


پاسخ به سوال
836بازدید

پاسخ ها (1)

1
برای مرورگرهایی که ()Element.closest رو پشتیبانی نمی کنند مثل Internet Explorer 11 می تونیم از روش زیر استفاده کنیم:

if (!Element.prototype.matches) 
Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;

if (!Element.prototype.closest) {
Element.prototype.closest = function(s) {
var el = this;
do {
if (el.matches(s)) return el;
el = el.parentElement || el.parentNode;
} while (el !== null && el.nodeType === 1);
return null;
};
}

وقتی یک ویژگی را در یک مرورگری که به صورت پیش فرض آن را پشتیبانی نمی کند، پیاده سازی می کنیم، اصطلاحا به این قطعه کد Polyfill می گوییم. برای اطلاعات بیشتر در این باره می توانید مقاله مربوط را در سایت Wikipedia مطالعه نمایید.

پاسخ به سوال
تعداد حروف 0