最近我一直在阅读越来越多关于在HTML标签中使用自定义属性的人,主要是为了嵌入一些额外的数据用于javascript代码.
我希望收集一些关于是否使用自定义属性是一个好习惯的反馈,以及一些替代方案.
现在看来似乎真的可以简化既服务器端和客户端的代码,但它也不是W3C标准.
我们应该在我们的网络应用程序中使用自定义HTML属性吗?为什么或者为什么不?
对于那些认为自定义属性是好事的人:使用它们时要记住哪些事项?
对于那些认为自定义属性是坏事的人:你用什么方法来完成类似的事情?
更新: 我最感兴趣的是各种方法背后的推理,以及为什么一种方法比另一种更好的原因.我想我们都可以用4-5种不同的方式来完成同样的事情.(隐藏元素,内联脚本,额外类,从ids解析信息等).
更新2: 似乎HTML 5 data-属性功能在这里有很多支持(我倾向于同意,它看起来像一个可靠的选项).到目前为止,我还没有看到这个建议的反驳方式.使用这种方法是否有任何问题/陷阱?或者它只是对当前W3C规范的"无害"失效?
我有一个简单的跨度
<span class="action removeAction">Remove</span>
Run Code Online (Sandbox Code Playgroud)
此跨度位于表格内,每行都有一个删除范围.
然后,当点击该跨度时,我使用AJAX调用URL.AJAX事件需要知道该行的对象的ID吗?将该ID放入点击功能的最佳方法是什么?
我以为我可以做这样的事情
<span class="action removeAction" id="1">Remove</span>
Run Code Online (Sandbox Code Playgroud)
但ID不应该以数字开头?对?然后我想我能做到
<span class="action removeAction" id="my1">Remove</span>
Run Code Online (Sandbox Code Playgroud)
然后从ID中删除"我的"部分,但这似乎只是Yuk!
下面是我的点击事件和我的AJAX事件.
<script type="text/javascript" language="text/javascript">
$(document).ready(function()
{
$(".removeAction").click(function()
{
//AJAX here that needs to know the ID
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
我相信有一个很好的方法吗?
注意:我不是在寻找
$(this).attr("id");
Run Code Online (Sandbox Code Playgroud)
我希望能够传递多条信息
谢谢.杰克.
我有一个这样的课:
<div class="photo" parameter1="custom" parameter2="custom"></div>
Run Code Online (Sandbox Code Playgroud)
我总共有4个参数.
我需要一种方法在我的照片div中提交这些参数以用于JQuery代码,并且仍然符合我的网站W3C.有任何想法吗?
这是一个代码:
<input type="button" id="array[1]" value="Value1" />
<input type="button" id="array[2]" value="Value2" />
<input type="button" id="array[3]" value="Value3" />
Run Code Online (Sandbox Code Playgroud)
我想做那样的事情:
$('#array').click(function() {
id = this.id;
$.ajax({
here goes type, url, data and else
});
})
Run Code Online (Sandbox Code Playgroud)
我想id添加数组的编号.例如,如果我单击id所在的按钮,array[3]那么id在Jquery的函数中获取值3.希望你明白我的意思.
这是Stacy的模板语言(一种不使用数据库的超轻HTML/PHP CMS)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>@title, @name's Portfolio </title>
<link rel="alternate" type="application/atom+xml" href="@root_path/?/feed/">
<link rel="stylesheet" href="@root_path/public/docs/css/screen.css" type="text/css" media="screen">
</head>
<body>
<div id="container">
<h1 class="col three">
<a href="@root_path">@name</a>
<strong>@profession</strong>
</h1>
<em class="col three">@email</em>
<hr>
:navigation
<div id="content" class="col eight">
<p class="date col one">@date</p>
<div class="description col six">
<h2 class="col six"><a href="@root_path">@title</a></h2>
@content
</div>
<hr>
<p id="project-count" class="col one"><em>№</em> @index/@siblings_count</p>
<p id="gallery-count" class="col one">
<em>№</em> <span>1/1</span>
</p>
<div id="gallery-navigation" class="col …Run Code Online (Sandbox Code Playgroud) 我在td属性'field'中有值,但是我找不到合适的方法来检查或验证它的值.
即
<td class="edit" field="qcat_id" user_id="1">MyCat</td>
Run Code Online (Sandbox Code Playgroud)
我尝试的方式:
function makeEditable(element) {
console.log (element);
if (element.field =="qcat_id"){
alert('yes');
}
}
Run Code Online (Sandbox Code Playgroud)
它永远不会显示yes,并将整个console.log返回<td>...</td>为字符串.
更新======================以下是收集element参数的代码
$(function() {
$(document).on("dblclick", "td.edit", function(){ makeEditable(this); });
});
Run Code Online (Sandbox Code Playgroud)
谢谢你们
jquery ×4
ajax ×2
html ×2
javascript ×2
php ×2
css ×1
function ×1
html-table ×1
parameters ×1
validation ×1
xhtml ×1