4

当我发现 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
});

我在这里做了小提琴来测试这个。

我的问题是 => 是否建议使用这种随机定义的属性来获得价值?

通常我使用下面的代码获得价值。

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 中成功测试了这个。)

4

2 回答 2

3

虽然这通常会起作用,但不建议使用专有/用户定义的属性。这些将无法验证,并且您可能错误地使用了真实属性。您的代码也不是面向未来的,因为您可以定义一个现在不使用但以后可以使用的属性。

相反,您应该使用data-属性 / .data

<input data-postid=10 class=delete_post>

var postID = $(this).data('postid');

规格:http ://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes

于 2013-01-27T03:56:54.897 回答
3

data-*HTML5 定义了使用属性是可以接受的。“任意随机”可能不如data-any-random.

于 2013-01-27T03:57:10.410 回答