關於使用data()獲取自定義屬性出現undefined的說明


這應該是這個函數的一個bug,沒有考慮到駝峰式的寫法,當我寫成駝峰式,即是有大小寫的變量時就會出現沒有定義的情況。

今天寫個交互,需要用到自定義屬性,因為這個自定義屬性是當作字段用的,就直接用了字段名稱,結果發現取出來是 undefined ,檢查了好幾遍沒有代碼錯誤,試了下另外一個字段,發現可以取到,看了下區別,取不到值得自定義屬性是帶有駝峰的,難道是這個問題?去掉了駝峰中的大寫,發現可以了,可以了!!!

代碼如下:

    <a data-field="price" data-orderWay="desc">單價</a> 
    $wrap.on('click', 'a', function() {
        var $this = $(this),
            field = $this.data('field'),
            orderWay = $this.data('orderWay');

        console.log(field); /*price*/
        console.log(orderWay); /*undefined*/
    });
                    

修改如下:

    <a data-field="price" data-orderway="desc">單價</a> 
    $wrap.on('click', 'a', function() {
        var $this = $(this),
            orderWay = $this.data('orderway');

        console.log(orderWay); /*desc*/
    });
                    

兩處代碼,僅僅是將 orderWay 改成 orderway 而已,區別這么大,jQuery實現 data 的時候應該是存在問題的。還有一點需要說明,就是vue后台給的數據要是字符串,不能是布爾值。不然為‘’


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM