Jquery 包含布尔值的html5数据属性
在我们的开发环境中,我们使用HTML5数据属性来保存布尔值(我现在知道这不是正确的方法)。例如:Jquery 包含布尔值的html5数据属性,jquery,asp.net-mvc,visual-studio-2010,html,asp.net-mvc-4,Jquery,Asp.net Mvc,Visual Studio 2010,Html,Asp.net Mvc 4,在我们的开发环境中,我们使用HTML5数据属性来保存布尔值(我现在知道这不是正确的方法)。例如: <div id="x" data-mydata="True"></div> 这是完美的,同样适用于假值 然而,当我们将其推送到QA环境时,它停止了工作。尽管我们将该值设置为“True”,但jQuery选择器读取的值是“data mydata”(数据属性的名称) 如上所述,我们学习了处理布尔值的正确方法(如果值为false,则排除数据属性) 但是,我的问题是:为什么这在我们的
<div id="x" data-mydata="True"></div>
这是完美的,同样适用于假值
然而,当我们将其推送到QA环境时,它停止了工作。尽管我们将该值设置为“True”,但jQuery选择器读取的值是“data mydata”(数据属性的名称)
如上所述,我们学习了处理布尔值的正确方法(如果值为false,则排除数据属性)
但是,我的问题是:为什么这在我们的开发环境中是单向工作的(错误的)?我们使用的是同一版本的jQuery,据我检查,DLL是同一版本的
仅供参考-我们目前的开发环境是:VS2010、ASP.NET MVC4.NET 4.0
谢谢
Griff我以前似乎没有这样使用过
。数据
,但如果它在您的本地机器上工作,我会假设浏览器在QA环境中不一样,并且在获取值时出现问题:
尝试将代码更改为:
var v = $('#x').data("mydata");
var v = $("#x").attr("data-mydata");
你在开发和测试中使用了相同的浏览器吗?你们有没有尝试过var v=$('#x').data('mydata')?在所有测试中都使用了相同的浏览器,还尝试了JS脚本中访问数据属性值的所有不同变体只是为了澄清-相同的浏览器在同一台计算机上运行。我们使用IE8/9进行测试,Firefox和Chrome-所有浏览器的结果相同。我认为.attr()方法会起作用,但希望通过使用.data()方法实现一致性。尝试同时使用.data('name')和.data().name语法,但结果相同。@DrGriff我在旧浏览器中也遇到了.data()的问题。当这种情况发生时,我不得不使用.attr方法。我使用的是这些浏览器的最新版本。遗憾的是,我从来没有弄清这一点。我们纠正了我们的模式,继续前进。
var v = $('#x').data("mydata");
var v = $("#x").attr("data-mydata");