我只想了解一下存储变量以供JQuery使用。
实施例
此处JQuery将使用video_id
隐藏输入的值,然后voteup
使用video_id
视频。
<form class='voteup' action='' method='post'>
<input type="hidden" name='video_id' value='<?php echo $video_id; ?>' />
<input type='submit' value='Vote Up' />
</form>
注意:这只是一个例子。
但是如果我想要一个链接来做同样的事情呢?我在哪里存储video_id
?
显然,我可以将video_id
存储在class
属性中,但我不认为这是最好的方式,特别是如果我需要发送多个变量。
有关于此的任何想法吗?
我必须提一下,我只是在寻找有效的XHTML方式。
答案 0 :(得分:8)
您可以使用jQuery data
方法将任意数据附加到元素。在你的情况下,如果我已经理解你正在尝试做什么,你可能想要做这样的事情:
$(document).ready(function() {
$("#yourLink").data("video_id", "<?php echo $video_id; ?>");
});
在寻找有效的XHTML解决方案时,您无法使用HTML5 data-*
属性。如果是这种情况,您可以直接在元素上添加属性值(正如您在示例中使用value
属性所做的那样)。
data
方法不需要在元素上显示相应的data-*
属性,因此这仍然允许您编写有效的XHTML。
答案 1 :(得分:2)
如果你挖掘HTML5,你应该去找数据属性。
答案 2 :(得分:1)
在HTML 5页面中,您可以使用“data-”属性:
<img src='http://placekitten.com/100/100' data-video-id='whatever'>
然后,从jQuery:
$('img').click(function() {
var video = $(this).data('video-id'); // 'videoId' also works here
});
如果你(悲惨地)坚持使用严格的XHTML,那么你就会陷入困境。对于<a>
标记,您可以使用“rel”属性。一般来说,“阶级”可能实际上是要做的事情。我在“类”中用于名称 - 值对的约定是用冒号分隔它们,然后通过正则表达式提取它们:
<sometag class='whatever videoId:video22 something'>
然后:
$('sometag').click(function() {
var videoId = this.className.replace(/videoId:(\S*)/, '$1');
// ...
});
答案 3 :(得分:1)
也许使用rel
属性,并使用.attr()
方法在jQuery中获取它。
var myVar = $('#link_id').attr('rel');