В IE11 ниже код показывает следующее сообщение об ошибке, но он работает в ChromeИспользование JavaScript `this.closest` в IE11 и Chrome
Объект не поддерживает свойство или метод«closest'4: 31 PM 09/07/16
assetTable.on("click", "td.clickProgress", function onDataTableRowClicked(event) {
var tr = this.closest("tr");
var assetId = tr.id.replace("asset_", "");
LoadDialog(assetId);
}
Однако, когда я изменить его на $(this)
она работает как в IE и Chrome
assetTable.on("click", "td.clickProgress", function onDataTableRowClicked(event) {
var tr = $(this).closest("tr");
var assetId = tr.attr('id').replace("asset_", "");
LoadDialog(assetId);
}
Любые причины этой проблемы совместимости между браузерами?
'this' является ссылкой на согласованный элемент, который имеет только свойства DOM. '$ (this)' является ссылкой на коллекцию jQuery, содержащую элемент, который имеет методы/свойства jQuery. Существует * экспериментальная * реализация * ближайшего *; но [вы не должны использовать его] (https://developer.mozilla.org/en-US/docs/Web/API/Element/closest). – Sampson