1

当我单击删除按钮时,如何在 jquery 中获取 art-no 的值?

<form id="artForm" method="post">
<input type="hidden" name="sequence" value="27" art-no="27">
<input type="button" value="Delete" class="delete" id="submitbutton">
</form>

在像这样使用 jQuery 时:

$(".delete").click(function() {
alert (".sequence").attr("art-no");
return false;
});

这实际上应该有效,但我不断在警报框中收到 .sequence 。是因为隐藏了吗?

4

2 回答 2

4

首先,这是有效的解决方案:

$(".delete").click(function() {
    alert ($("[name='sequence']").attr("art-no"));
    return false;
});

我有一些建议;

  • 那个隐藏字段没有类名,所以你不能.sequence用于选择器,你必须使用[name='sequence']或者你可以给它sequence类并使用它.sequence
  • data您可以使用属性和,而不是组成自己的属性.data(),像使用它data-art-no="27"并像访问它一样.data('art-no')
  • 最后,使用event.preventDefault()insted of return false

这是您修改后的代码:

$(".delete").click(function(e) {
    e.preventDefault();
    alert ($("[name='sequence']").data("art-no"));
});
于 2012-12-05T07:49:29.877 回答
3

添加class="sequence"您的输入,现在只有一个名称,然后替换

alert (".sequence").attr("art-no");

alert ($(".sequence").attr("art-no"));

或更好

alert ($(this).prev(".sequence").attr("art-no"));

如果您多次使用该类,以确保您拥有正确的元素sequence(这通常是使用类而不是 id 的原因)。

如果您不想添加类或 id,则选择器将是input[name=sequence]

alert ($("input[name=sequence]").attr("art-no"));
于 2012-12-05T07:46:34.837 回答