在更改select时,JQuery数据属性未定义

时间:2018-01-15 13:44:44

标签: javascript php jquery drop-down-menu custom-data-attribute

我尝试创建选项,然后在使用此模式的select中动态设置jQuery对象的数据,但不起作用。

这是我打印商店选项的HTML代码,并为其提供data-attribute名为" data-last-sync-shop"

<select id="shopSelect" 
        onchange="$('#lastSync').text($(this).data('lastSyncShop'));" 
        name="shop_select">

    <option value=""></option>

    <?php foreach ($shops as $code => $info) { ?>
        <option value="<?= $code ?>" 
                data-last-sync-shop="<?= $info['last_sync'] ?>">
            <?= $info['description'] ?>
        </option>
    <?php } ?>
</select>
<span id="lastSync">-</span>

如果我调试select onchange事件,则数据属性未定义,但如果我检查PHP生成的HTML代码,则选项的数据属性会正确填充。为什么?我哪里错了?谢谢你的回答。

我在此添加console.log()

<select id="shopSelect" 
        onchange="console.log($(this).data('lastSyncShop'));" <!-- undefined --> 
        name="filtro[codice_shop_select]">

1 个答案:

答案 0 :(得分:4)

您需要定位package option元素。

 $(this).find('option:selected').data('lastSyncShop')