2013-04-06 161 views
0

我是新来的Java EE和HTML5的前端。我读过你可以使用data属性来读取DOM。你将如何正确使用这个来获得已经由java设置的会话属性。与其他方法相比,如使用隐藏输入。如何使用HTML5数据属性获取会话属性

<input id="sid" type="hidden" name="series" value="${sessionScope.series} /> 

var sid = document.getElementById("sid"), series; 
+0

你需要会话ID在窗体中吗?为什么不只是'var sid = $ {sessionScope.series}'? – robertc 2013-04-06 12:18:26

回答

1

使用这样的事情:

<div id="div1" data-special-value="${sessionScope.series}"></div> 

而得到这样的属性值:

document.getElementById("div1").getAttribute("data-special-value") 

甚至(http://caniuse.com/dataset):

document.getElementById("div1").dataset("special-value") 

或者使用jQuery:

$("#div1").attr("data-special-value") 
// or 
$("#div1").data("special-value") 

尽管我不确定在元素上存储会话值是否正确。这绝对没有错,我只是想知道你需要什么/将它用于会议。会话出现一次。

data-*属性对于将相关数据存储到某些内容更有用。例如,如果通过一堆数据库中的记录,你循环打印其列,但也想存储行的数据库id一次,你会使用:

<c:forEach items="${rows}" var="row"> 
    <tr data-row-id="${row.id}"> 
     <td>${row.name}</td> 
     <td>${row.description}</td> 
    </tr> 
</c:forEach> 

然后,如果你想获得原始row.id值,它存储在一个地方,包含了它所涉及的所有内容(列)。这通常是我如何/在哪里使用data-*属性。当然,这有很多想法/用途。