我有调度表,其中div代表天。每天都有数据属性日期,格式为:
$('#scheduler-table > div.row > div:nth-child(4) > div').data()
{date: "8.09.2017", day: 3}
从开发者工具中复制直接选择器。
但是当我尝试将我的选择器用于数据属性时:
$('#scheduler-table').find("[data-date='8.09.2017']").data();
它找不到任何东西。我的选择器出了什么问题?
答案 0 :(得分:0)
我假设你想要的只是从特定元素中检索data-date
的值?
$('#scheduler-table').each(
var mydate = $('#scheduler-table > div.row > div:nth-child(4) > div').attr('data-date')
console.log(mydate);
function SearchByDate(myDate){
var mySelectedElement;
$('[data-date]').each(function() {
if ($(this).val(myDate)){
mySelectedElement = $(this);
}
});
}
SearchByDate("8.09.2017");
基本上,您使用data-date
搜索所有属性,如果它的值与SearchByDate
(您随时调用的函数)中的属性相对应,则会分配结果元素为mySelectedElement
。
答案 1 :(得分:0)
当您使用\i demo.sql
的setter来应用值时,通常会发生此问题,因为它不会更新DOM,因此基于data()
属性的属性选择器将找不到该元素。相反,该值存储在jQuery维护的对象中,以用于性能目的。
要解决此问题,请使用data
查找元素:
filter()