当我发现jquery可以从任何随机定义的属性中获取值时,我感到非常震惊。
HTML
<a postid='10' class='delete_post'>Delete</a>
JS
$('body').on('click', '.delete_post', function() {
var id = $(this).attr('postid');
delete_post(id); //$.post request for deleting post
});
我做了fiddle here来测试它。
我的问题是=&gt;是否建议使用这种随机定义的属性来获取价值?
通常我会使用以下代码获得价值。
HTML
<div class='delete_post'>
<a>Delete</a>
<input type='hidden' class='id' value='10' />
</div>
JS
$('.delete_post').on('click', 'a', function() {
var id = $(this).parent().find('.id').val();
delete_post(id); //$.post request for deleting post
});
(我在chrome,firefox和Internet Explorer中成功测试了这个。)
答案 0 :(得分:3)
虽然这通常有效,但建议不要使用专有/用户定义的属性。这些将无法验证,您可能会错误地使用真实属性。您的代码也不具备前瞻性,因为您可以定义一个现在不使用的属性,但以后可以使用。
相反,您应该使用data-
属性/ .data
:
<input data-postid=10 class=delete_post>
var postID = $(this).data('postid');
答案 1 :(得分:3)
HTML5定义使用data-*
属性是可以接受的。 “任意随机”可能不如data-any-random
有效。