我有这样的代码..
// Get some data
var id = event.target.id;
var flag_status = event.target.dataset.change;
var winner_id = event.target.dataset.winner;
var item_id = event.target.dataset.item;
“正常”的浏览器喜欢Firefox
并Chrome
毫无问题地获取值,并且一切正常。但是什么也没有发生,IE8
所以我假设它无法获取数据。
该event
参数传递给通过这个代码此功能:
$('.shipping_status').click(function(event) {
event.preventDefault();
// Update Shipping Status
updateShippingStatus(event);
});
..然后,当单击以下示例元素之一时,将其获取:
<a title="Item Being Processed" class="shipping_status processing" data-item="102383" data-winner="172" data-change="0" id="processing_102383" href="#"></a>
<a title="Item Posted" class="shipping_status posted active" data-item="102383" data-winner="172" data-change="1" id="posted_102383" href="#"></a>
<a title="Problem With Item" class="shipping_status problem" data-item="102383" data-winner="172" data-change="3" id="problem_102383" href="#"></a>
<a title="Item Delayed" class="shipping_status delayed last" data-item="102383" data-winner="172" data-change="2" id="delayed_102383" href="#"></a>
有什么方法可以使它与IE8一起使用吗?...此外,我不必IE9+
进行测试-有人知道它是否可以在IE8中运行吗?
我还用jQuery
如果我们还有另一种方法来用jQuery来获得此数据的标记,这也将与IE8一起使用。
看起来IE刚刚开始支持dataset
IE11中的属性:https : //developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
尝试只使用getAttribute()
:
var flag_status = event.target.getAttribute('data-change');
var winner_id = event.target.getAttribute('data-winner');
var item_id = event.target.getAttribute('data-item');
如果您使用的是jQuery,则可以使用以下data()
方法轻松实现此目的:
var $target = $(event.target);
var flag_status = $target.data('change');
var winner_id = $target.data('winner');
var item_id = $target.data('item');
仅data()
在HTML元素的属性不变的情况下使用。从jQuery文档:
数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(所有数据值然后内部存储在jQuery中)。
如果您需要重新读取更改的HTML属性,请使用以下attr()
方法:
var $target = $(event.target);
var flag_status = $target.attr('data-change');
var winner_id = $target.attr('data-winner');
var item_id = $target.attr('data-item');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句