2013-03-13 132 views
2

在我的JSP,在头部,我有这样的:数据属性未定义

<script type="text/javascript"> 
    $(document).ready(function() { 
     var labelfooter = jQuery("#myId").data("mylabel"); 
     var htmlContent = labelfooter +" society "; 
     var divContent = jQuery("#myId"); 
     divContent.text(htmlContent); 
    }); 
</script> 

然后,在身体的一部分,我有:

<div id="myId" data-mylabel="Hello" ></div> 

结果,在浏览器中,我得到“未定义的社会”而不是“你好社会”

有什么想法吗?

+5

W¯¯ orks对我来说很好:http://jsfiddle.net/UT3jy/ – Blender 2013-03-13 16:37:19

+0

你是否有实际名称上的大写字母? – epascarello 2013-03-13 16:44:02

+0

@Blender也适用于我。如果他仍然有问题,也许可以使用'.single()'? – 2013-03-13 16:44:17

回答

5

这里的问题是你的名字中有一个大写字母。这意味着在jQuery选择器中有所不同。两种方法来解决它。

HTML

<div id="d1" data-fooBar="asdf1"></div> 
<div id="d2" data-foo-bar="asdf2"></div> 

的JavaScript

var x1 = $("#d1").data("foobar"); //selects the camel case one 
var x2 = $("#d2").data("fooBar"); //looks for the dash 

JSFiddle Example

+0

这个答案需要更多的选票。我一直在寻找过去30分钟试图解决这个问题 – 2015-01-12 20:07:45