据我所知,value
被用作HTML输入属性。
<form action="form_action.asp" method="get">
<input type="submit" value="Submit form" />
</form>
但是,我想知道,这是一种正确的做法,我可以在其他HTML属性中使用它来充当隐藏价值吗?
例如,对于每个表行,我想用唯一ID标记它,作为SQL数据库中的唯一ID。但是,与此同时,我还想隐藏最终用户的唯一ID。
这是我一直在使用的技术。
<html>
<head>
<title>
XXX
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.delete-button').click(function() {
var clicked = $(this);
alert(clicked.parent('tr').attr('value'));
});
});
</script>
</head>
<body>
<table style="border-style:none">
<tbody>
<tr>
<th>Server Name</th>
<th>IP Address</th>
</tr>
<tr style="border-style:none" value="ROW ID 1">
<td class="edit">Yahoo Server</td>
<td class="edit">196.168.0.1</td>
<td class = "delete-button" style="border-style:none"><a href="">DELETE</a></td>
</tr>
<tr style="border-style:none" value="ROW ID 2">
<td class="edit">Google Server</td>
<td class="edit">196.168.0.2</td>
<td class = "delete-button" style="border-style:none"><a href="">DELETE</a></td>
</tr>
</tbody>
</table>
</body>
</html>
由于我不经常使用HTML和JavaScript,我想知道上述是否是一种正确且常用的技术?
答案 0 :(得分:3)
使用严格的HTML4 / XHTML,您不应在标签上创建任意属性。您可以,但它对于架构无效。
使用HTML5,最佳做法是使用data-
attributes。
例如
<tr style="border-style:none" data-rowid="ROW ID 1">
<td class="edit">Yahoo Server</td>
<td class="edit">196.168.0.1</td>
<td class="delete-button" style="border-style:none"><a href="">DELETE</a></td>
</tr>
答案 1 :(得分:0)
我建议使用属性,而不是使用值。 JQuery支持属性,这是一种非常常见的做法。 http://api.jquery.com/attr/
在初始化时,您可以设置所有属性,然后您可以拥有自己的自定义属性来读取您之前设置的值(然后可以映射到字典或沿着这些行的某些内容)。
这有帮助吗?
答案 2 :(得分:0)
没有。在这种情况下,value是表单组件。 你只需要使用id =“ROW ID 2”或任何你的价值 -
alert(clicked.parent('tr').attr('id'));
此外,这个HTML非常古老。只是我的意见,不要被视为讽刺言论,但对html5和css3的良好评论将是有益的。
答案 3 :(得分:0)
你确定......你可以使用......你甚至可以拥有自己的自定义属性来携带你的数据,除了在源视图中之外,这些数据永远不会显示给最终用户。示例如下:
<tr style="border-style:none" mydata="ROW ID 2"> and it can be accessed as ('tr').attr('mydata')
答案 4 :(得分:0)
是的,你可以使用你想要的任何属性名称
<tr style="border-style:none" rowid="1">
然后在jQuery中,您将通过以下方式访问它:
$('tr[rowid=1]');
或者如果你有一行并想知道它是id:
var rowid = $(this).attr('rowid');