2015-12-13 32 views
0

我試圖抓住一個數據屬性的值查找數據屬性:jQuery的:用正則表達式

<div class="relative-time" data-seconds="1449907467">12 December 2015</div> 

正如你看到的,這個值是一個Unix紀元時間,因此值變化。

到目前爲止,我已經試過......

$(".relative-time[data-seconds='/[^0-9]+/']"); 
$("body").data("data-seconds", /[^0-9]+/); 
$('div[data-seconds="/[^0-9]+/"]'); 
$("body").attr("data-seconds"); 
$('*[data-seconds="/[^0-9]+/"]'); 

......但這些都不返回任何東西。

假設正則表達式不正確,我將它換成實際值,但沒有改變。

任何想法都會受到歡迎。

+2

你想'$( '相對時間')。 data('seconds')' - 當使用'.data()'方法時,你省略了'data-'前綴。請注意,jQuery屬性等於選擇器不支持對正則表達式進行測試。還要注意''('body')。data('seconds')'不起作用,因爲''元素不是具有data-seconds屬性的元素。進一步注意,你似乎對'.data()'的雙參數形式做了什麼非常困惑。我建議閱讀jQuery文檔,而不是盲目猜測。 – senshin

回答

1

獲取價值

$('.relative-time').data('seconds'); 

更改爲日期

new Date($('.relative-time').data('seconds') * 1000)); 

打印到控制檯

console.log(new Date($('.relative-time').data('seconds') * 1000)); 

on jsfiddle

UPDATE

或者用jQuery的原型功能:

(function($) { 
    $.fn.setDate = function() { 
    this.text(new Date(this.data('seconds') * 1000)); 
    // or return value 
    // return new Date(this.data('seconds') * 1000); 
    } 
})(jQuery); 

讀取和設置值:

$(".relative-time").setDate(); 

on jsfiddle

+0

嗨MoonYard,謝謝你!部分問題是因爲我正在嘗試在一個函數中執行此操作。有任何想法嗎? –

+0

升級了代碼 – MoonYard