jquery选择问题

时间:2010-08-04 07:58:21

标签: jquery asp.net-mvc

在某些View页面上,我有两个部分视图(它们的html是相同的)。第一个工作这个脚本,但第二个不工作。

<script type="text/javascript">
   $(document).ready(function() {

    $('input:radio').click(function() {

        var location = $("input:checked").val();
        var article_number = $("input[id=MArticleNumber]").val();

        $.post("/ImportXML/DevAccEditTempTable", { location: location, article_number: article_number }, function(data) {

            if ($("input[id='check']:checked").val() == 'a') {
                alert("page for new device")    
            }
            else {
                window.location.href = "/" + data.redirect;
            }
        },"json");
    });
});
</script>

尝试获取article_number时出现问题,因为我有两个带有一些id的输入框(id = MArticleNumber)。如果将第二个id更改为id = MArticleNumber1,那么有两个文章编号,但我必须传递给动作DevAccEditTempTable只有一个文章编号。

1 个答案:

答案 0 :(得分:3)

首先,您可以使用更多的短手调用来获取具有id的元素的值(*参见下面的说明):

var article_number = $("#MArticleNumber").val();

其次,拥有相同id的元素是无效的。根据HTML规范,id必须是唯一的:www.w3.org

通过使您的ID唯一,您的问题就会消失。

(*)解释为什么你应该在jQuery中使用#selector而不是[id = ...]选择器。

 $("#myElementId")

使用#id将导致一个简单的getElementById调用,这是快速而简单的。 id必须是唯一的,因此元素的类型不相关。

$("input[id=myElementId]")

要执行此查找,首先获取所有输入元素,然后根据指定的属性搜索循环查找匹配项。