为什么在使用 JQUERY 从 HTML 元素获取数据值时数据属性显示未定义

why data-attribute shows undefined while getting data value from HTML element using JQUERY

FIDDLE

我正在尝试获取 HTML 元素的数据属性值,它显示未定义 object[] 对我来说没有任何用处。检查我的 fiddle.

$(document).on("click", ".modal-open", function() {
    var $_target = $($(this).data("targetlocation"));
    var $_url = $($(this).data("targeturl"));
    console.log($_target);
    console.log($_url);
})

您需要使用:

var $_target = $(this).attr("data-target-location");
var $_url = $(this).attr("data-target-url");

var $_target = $(this).data("target-location");
var $_url = $(this).data("target-url");

Working Demo

使用多个词的标识符时,需要使用camelCase表示法

var $_target = $(this).data("targetLocation"); //Notice L 
var $_url = $(this).data("targetUrl");

DEMO

    $(".modal-open").on("click", function() {

        var $_target = $(this).attr("data-target-location");
        var $_url = $(this).attr("data-target-url");
        alert($_target);
        alert($_url);
     });

使用它来获取属性

此处显示此演示 Demo There

如果您要使用此 html 元素

 <button type="button" class="modal-open" data-target-url="ajax.html" data-target-location=".overlay"> Modal open </button>

在按钮 "this" 上触发点击事件后将 return 相同的 html 元素, 因此要获取此类型的当前数据属性值。

您应该使用 Camel Casing 表示法。

var $_target = $(this).data("targetLocation");
var $_url = $(this).data("targetUrl");

Working Example