2016-04-25 63 views
0

在我的应用程序中,我需要隐藏一些值,以便稍后用jQuery提取它们。使用什么HTML元素来保存隐藏值

我有以下的div保持地图的数据(点击img后,我想,以显示与2个标记的地图):

<div class="map-data"> 
<img src="../map.png"> 
</div> 

为了做到这一点我需要存储4个隐藏值( 1_lat, 1_long, 2_lat, 2_long),如:

<label type="hidden" value="56.056180"> 

将正确的隐藏要素是什么,用于存储这些值? Labelp还是别的?

+1

一个'data'属性可以在任何元素上使用。或者,如果你愿意,你可以使用'input type =“hidden”'。甚至可以将它放在JavaScript变量中,而不是将其存储在标记中。真的有很多选择。 – David

+3

JavaScript? 'config = {lat1:“1234”...' –

+0

使用'input'。例如''。如果它在表单中,则可以在POST或GET中调用该值。 –

回答

2

因为它似乎你将只能使用这些值的客户端,即你不会将它们发送回服务器,但使用input元素似乎是错误的。

评论已经有两个非常好的建议,在这里扩展。


个人如果我需要每个元件数据(数据元素每变化)我会使用data attributes

<div id="sampleMap" data-lat1="0.241" data-lat2="0.56"> 
    ... 
</div> 

<div id="anotherSampleMap" data-lat1="0.87" data-lat2="0.283"> 
    ... 
</div> 

他们可以很容易地访问。

function configureTheMap(map) 
{ 
    var lat1 = map.dataset.lat1; 
    var lat2 = map.dataset.lat2; 

    ... 
} 

... 

configureTheMap(document.getElementById('sampleMap')); 
configureTheMap(document.getElementById('anotherSampleMap')); 

虽然你应该检查浏览器兼容性。

如果数据全球我会简单地生成一个JavaScript对象

var coordinates_config = {lat1 : 0.241, lat2 : 0.56}; 

,并相应地使用它

function configureTheMap(map) 
{ 
    var lat1 = coordinates_config.lat1; 
    var lat2 = coordinates_config.lat2; 

    ... 
} 

可以概括这种方法很容易用于每个元素数据如果数据属性不支持您定位的浏览器。

在这两种情况下,请允许我记住生成标记/代码时正确转义的重要性。

3

你应该使用隐藏式用于此目的的输入框:

<input id='1_lat' type="hidden" value="56.056180"> 

然后,您可以用$("#1_lat").val("22.0")

+0

这篇文章没有jQuery标签。最好是提供'document.getElementById(“1_lat”)。value =“22.0”;' – user2867288

+0

@ user2867288 OP明确指出“让他们稍后被jQuery拾起” – scrappedcola

0

更新该值可以使用输入类型=“隐藏”。
参考:w3schools

0

我建议你总是使用INPUT作为隐藏值。

1

<input id='input_ID' type="hidden" value="whateveryouwant">

在Dreamweaver中,你可以使用它作为GUI阻力,从PHP工具箱拖放到右侧