2013-02-15 32 views
3

在我們的開發環境中,我們使用HTML5數據屬性來保存布爾值(我現在知道這不是要走的路)。因此,例如:包含布爾值的html5數據屬性

<div id="x" data-mydata="True"></div> 

然後在我們的JS代碼(使用jQuery),我們成功地拿起布爾值:

var v = $('#x').data().mydata; 
if(v == 'True') {...} 

這完美地工作 - 而同樣如此虛假值。

但是,當我們將其推送到我們的QA環境時,它停止工作。儘管我們將該值設置爲「True」,但jQuery選擇器讀取的值爲「data-mydata」(data屬性的名稱)。如上所述,我們已經學會了處理布爾值的正確方法(如果值爲假,則排除數據屬性)。

但是,我的問題是:爲什麼在我們的開發環境中單向工作(錯誤地)?我們使用的是相同版本的jQuery,並且據我檢查,這些dll是相同的版本。

僅供參考 - 我們的開發環境目前是:VS2010,ASP.NET MVC4 .NET 4.0。

感謝

格里夫

+0

是你使用開發和測試相同的瀏覽器? – 2013-02-15 08:46:03

+0

你們有沒有試過var v = $('#x')。data('mydata')? – user1565195 2013-02-15 08:47:32

+0

在所有測試中使用相同的瀏覽器,並且還嘗試了JS腳本中用於訪問數據屬性值的所有不同變體 – DrGriff 2013-02-15 13:34:28

回答

0

我還沒似乎.data使用像前,但如果它工作在本地機器上我會假設瀏覽器是不是在QA環境相同,有問題越來越值:

嘗試改變代碼之一:

var v = $('#x').data("mydata"); 

var v = $("#x").attr("data-mydata"); 
+0

我們使用IE8/9,Firefox和Chrome進行測試,結果相同。我認爲.attr()方法可以工作,但通過使用.data()方法希望一致。 嘗試使用.data('name')和.data()。名稱語法得到相同的結果。 – DrGriff 2013-02-15 13:35:48

+0

@DrGriff我在舊版瀏覽器中也遇到了.data()問題。發生這種情況時,我必須使用.attr方法。 – 2013-02-15 13:55:33

+0

我正在使用這些瀏覽器的最新版本。 – DrGriff 2013-02-15 18:21:08