跳到主要內容

HTML5 自定義屬性 的小問題

自定義屬性非常好用。
在呼叫上有很多方法。
可以參考這一篇。
http://sincode.blogspot.tw/2014/09/html5-data-data.html


HTML5 強大的新功能 data() data- 自定義屬性介紹

常常會看到程式碼裡面有 < a href="#" class ="RemoveLink"  data-id="myid ">

這是什麼呢?
是DOM物件上的自定義屬性,是HTML5才有的!

這有什麼好處呢?


比如我們本來需要用ajax獲得一些資料
但這些資料其實都不太會變動,就可以使用data-屬性了!

請看範例:
 < ul id="vegetable">
        <li data-spacing ="10cm" data-sowing-time="March to June"> Carrots</ li>
        <li data-spacing ="30cm" data-sowing-time="February to March"> Celery</ li>
        <li data-spacing ="3cm" data-sowing-time="March to September">Radishes </li >
    </ul >
    這樣定義後,當我們要將它呈現在網頁上時,就可以直接使用
    <script src ="Scripts/jquery-2.1.1.js"></ script>
    <script type ="text/javascript">
        $(document).ready(
          function () {
              $( '#vegetable>li').each( function (index, element) {
                  console.log(index)
                  alert($(element).data( 'spacing'))
              })
          }
        )
        //來取得預先設定好的公分數和熟成時間了!  是不是很方便呢?
    </script >


定義介紹:
jQuery.data( element keyvalue  )

element - 必要的參數,這個屬性就是我們要塞入資料的節點。
key - 欲塞入資料的鍵值,往後取得資料使用。
value - 欲塞入的資料,可為任何的資料型態。

JQuery寫入:
    $(this).data("mykey", "myValue")
也等於:
    $.data(this,"myKey","myValue")

jQuery取值:
    $(this ).attr("data-myKey" )
等於
    $(this ).data("myKey")


其實data()就是在改變該Object也就是其dataset屬性的值而已:

var myObject = { myProperty: 'myValue' }  
$.data(myObject, 'newProperty1', 'newValue1');
結果:myObject值為'newValue1'

JavaScript寫入語法:
<div id="test" data-age ="24"> Click Here</div>
var test = document.getElementById( 'test');
      test.dataset.my = 'Byron';


css選取器亦可藉此設定樣式
<style type="text/css">
    [data-age] {
        background-color: #0f0;
        width: 100px;
        margin: 20px;
    }
</style>

相關參考:





上面這些是介紹。
下面是在作業上遇上的狀況。

<table id = "mainTable" class="table table-bordered" data-TSID="#: TSID #">

再使用自定義屬性的時候使用了這樣的名稱。
然後再使用JS呼叫值的時候使用了這樣的語法

於是乎怎麼叫都是undifind.....
後來把它改成小寫呼叫也就是。
就可以順利的把值叫出來了...


所以這故事說....自定義屬性的呼叫只吃小寫。請各位小菜鳥要謹記這個坑...
為了避免這個問題在命名的時候盡量使用小寫吧...或許駝峰命名可以?

留言

這個網誌中的熱門文章

PS4觀看日本DMM影片的方法

過了死線了。 無聊來研究一下家裡的VR能幹點甚麼... 突然想說他好像可以看VR文藝片,就想說來搞個DMM來看。 基本上 本篇文章是跟著記憶打的,沒有太多的圖片。 懶人包。 PS4方: step1. 準備日帳。 step2. ps4登入日帳。 step3. 進入多媒體區下載DMM。 到此日帳的作用結束。可以切回台帳了。 這邊PS4端的作業會很魯洨建議大家在PC端進行。 PC方: 1.到DMM網站申請帳號。 2.加值點數。透過信用卡買。 一點等於一日幣。 3.安裝chrom VPN https://steachs.com/archives/11427 切換 日本IP觀看DMM 18 到VR區找喜歡的影片購買。 4.完成結帳 PS4方: 1.戴上VR眼鏡。 2. 打開DMM。 3.點選黃條撥放。 4.享受他! 明天有精力在寫詳細的操作步驟。 VR片真是夭壽讚.....

[台南]湖南牛肉麵

湖南牛肉麵。 想說網路的評語皆是"有著藥膳味的牛肉麵"。 興高采烈的以為終於可以找到一間媲美台中提督府牛肉麵的店家。 馬上驅車前往一吃究竟! 必須要題的是看到店家的第一眼,我就覺得這家店再不濟也不至於難吃。 馬上點了碗招牌的紅燒牛肉麵,順便切了盤魯味。 牛肉湯如上,是屬於半筋半肉,肉不至於煮到入口即化。 還算是有嚼勁,筋也煮軟,是塊合格的牛肉! 湯則是與我期待的濃厚湯頭差了一段距離, 算是溫和的湯頭。藥膳味道是不重...相較於提督府那種濃妝豔抹的奇行種。這裡的湯頂多像是上了濃妝風韻十足的大姊頭。 麵的話是扁麵,煮得恰好還留麵心。 雖然味道不差,可是離我還想再來的標準還差了一線。 倒是蹄花麵讓我很好奇,也許會因為想吃看看而來XD

[台南]墨西哥料理Cocina Quesadilla

照片是2015 本來在成大育樂街的一家墨西哥料理.... 現已搬到東豐路上 原本以為這東西怎麼可能吃的飽.. 結果超撐的。 牛肉捲的餅皮艇好吃的。 湯的料也挺棒的,而且超便宜的阿!!!ヾ(o゚ω゚o)ノ゙ 改天再去試試別的東西。