Javascript 存储JQuery变量的最佳方法?

Javascript 存储JQuery变量的最佳方法?,javascript,jquery,html,xhtml,Javascript,Jquery,Html,Xhtml,我只是想了解一些关于存储变量以供JQuery使用的想法 范例 在这里,JQuery将使用video\u id隐藏输入的值,然后使用video\u id对视频进行voteup <form class='voteup' action='' method='post'> <input type="hidden" name='video_id' value='<?php echo $video_id; ?>' /> <input type='sub

我只是想了解一些关于存储变量以供JQuery使用的想法

范例

在这里,JQuery将使用
video\u id
隐藏输入的值,然后使用
video\u id
对视频进行
voteup

 <form class='voteup' action='' method='post'>
   <input type="hidden" name='video_id' value='<?php echo $video_id; ?>' />
   <input type='submit' value='Vote Up' />
 </form>


如果你使用HTML5,你应该选择数据属性


如果你使用HTML5,你应该选择数据属性


在HTML 5页面中,您可以使用“数据-”属性进行以下操作:

<img src='http://placekitten.com/100/100' data-video-id='whatever'>
如果您(不幸地)被严格的XHTML束缚住了,那么,您就被束缚住了。对于
标记,我想您可能会使用“rel”属性。一般来说,“类”实际上可能是要做的事情。我在“类”中使用的名称-值对约定是用冒号分隔它们,然后通过正则表达式提取它们:

<sometag class='whatever videoId:video22 something'>

在HTML 5页面中,您可以使用“数据-”属性来处理以下内容:

<img src='http://placekitten.com/100/100' data-video-id='whatever'>
如果您(不幸地)被严格的XHTML束缚住了,那么,您就被束缚住了。对于
标记,我想您可能会使用“rel”属性。一般来说,“类”实际上可能是要做的事情。我在“类”中使用的名称-值对约定是用冒号分隔它们,然后通过正则表达式提取它们:

<sometag class='whatever videoId:video22 something'>
可以使用jQuery方法将任意数据附加到元素。在您的情况下,如果我理解了您试图正确执行的操作,您可能希望执行以下操作:

$(document).ready(function() {
    $("#yourLink").data("video_id", "<?php echo $video_id; ?>");
});
$(文档).ready(函数(){
$(“#yourLink”)。数据(“视频id”);
});
在寻找有效的XHTML解决方案时,不能使用HTML5
data-*
属性。如果是这种情况,您可以直接在元素上添加属性值(就像您在示例中使用
属性所做的那样)

data
方法不要求元素上存在相应的
data-*
属性,因此这仍然允许您编写有效的XHTML。

您可以使用jQuery方法将任意数据附加到元素。在您的情况下,如果我理解了您试图正确执行的操作,您可能希望执行以下操作:

$(document).ready(function() {
    $("#yourLink").data("video_id", "<?php echo $video_id; ?>");
});
$(文档).ready(函数(){
$(“#yourLink”)。数据(“视频id”);
});
在寻找有效的XHTML解决方案时,不能使用HTML5
data-*
属性。如果是这种情况,您可以直接在元素上添加属性值(就像您在示例中使用
属性所做的那样)


data
方法不要求元素上存在相应的
data-*
属性,因此这仍然允许您编写有效的XHTML。

也许可以使用
rel
属性,并使用
.attr()
方法在jQuery中获取它

var myVar = $('#link_id').attr('rel');

也许可以使用
rel
属性,并使用
.attr()
方法在jQuery中获取它

var myVar = $('#link_id').attr('rel');

$(“a”).data(“video_id”)
-请看@RobW您已经有了这么多的声誉,您不需要将其作为实际答案发布?;-)谢谢Rob,我将对此进行研究。
$(“a”).data(“video_id”)
-请看@RobW您已经有了很多声誉,您不需要将其作为实际答案发布?;-)谢谢Rob,我将对此进行研究。@NathanAnderson是的,但它们不符合严格的XHTML。换句话说,如果你想验证代码,就不能在XHTML中使用任意属性。我不同意。有很多方法可以在不添加任意属性的情况下形成有效文档。我发现HTML5太新了,可以跨平台突破。由于XHTML是有效的XML,99%的平台可以理解它,而无需猜测标记。HTML 5被明确设计为捕获实际浏览器的实际行为。实际上,XHTML并没有像在IE浏览器中那样工作,而且从来没有。@NathanAnderson是的,但它们不符合严格的XHTML。换句话说,如果你想验证代码,就不能在XHTML中使用任意属性。我不同意。有很多方法可以在不添加任意属性的情况下形成有效文档。我发现HTML5太新了,可以跨平台突破。由于XHTML是有效的XML,99%的平台可以理解它,而无需猜测标记。HTML 5被明确设计为捕获实际浏览器的实际行为。实际上,XHTML并没有像在IE浏览器中那样工作,而且从来没有。这是非常正确的,但有时能够将标记与行为代码完全分离是很好的。这就是为什么在标记本身中包含相关的附加属性是有用的。同意,但是没有使用
data-*
属性的能力,您就没有太多选择了。正如您所提到的,您可以使用
rel
,但这在语义上不是很好。我想这取决于他们喜欢的操作。这是很正确的,但有时能够完全将标记与行为代码分离是很好的。这就是为什么在标记本身中包含相关的附加属性是有用的。同意,但是没有使用
data-*
属性的能力,您就没有太多选择了。正如您所提到的,您可以使用
rel
,但这在语义上不是很好。我想这取决于他们喜欢的OP。