jQuery - 使用自定义属性查找控件

时间:2012-02-21 23:12:52

标签: javascript jquery asp.net checkboxlist

我正在使用Asp.Net的CheckBoxList控件。为了获得选中的复选框,我在将数据绑定到复选框列表后为Value添加自定义属性。

我能够在jQuery中获取选中的复选框,但我不知道如何使用复选框列表中的自定义属性查找特定的复选框。

这是代码:

在.cs文件中的数据绑定后:

    foreach (ListItem li in cblRequestTypes.Items)
        li.Attributes.Add("itemValue", li.Value); 

获取所选的checbox:

$(":checkbox").each(function() {
              if (this.checked) {

                selectedChecks += $(this).parent().attr("itemValue") + "~";

              }
            });

现在我传递查询字符串中的值,并根据我必须找到在查询字符串中发送了itemValue属性的复选框。这部分不起作用,或者我在这里遗漏了一些东西。

var id = $.QueryString["id"]
$(id.split("~")).each(function (i, item) {
                $("checkbox[itemValue=" + item +"]").attr('check',checked');

            });

这是呈现CheckBoxList的HTML的方式:

<span itemValue="3"><input id="chkBoxList_0" type="checkbox" name="chkBoxList$0" /><label for="chkBoxList_0">Text 1</label></span>
<span itemValue="5"><input id="chkBoxList_1" type="checkbox" name="chkBoxList$1" /><label for="chkBoxList_1">Text 2</label></span>
<span itemValue="6"><input id="chkBoxList_2" type="checkbox" name="chkBoxList$2" /><label for="chkBoxList_2">Text 3</label></span>
<span itemValue="7"><input id="chkBoxList_3" type="checkbox" name="chkBoxList$3" /><label for="chkBoxList_3">Text 4</label></span>
<span itemValue="8"><input id="chkBoxList_4" type="checkbox" name="chkBoxList$4" /><label for="chkBoxList_4">Text 5</label></span>
<span itemValue="9"><input id="chkBoxList_5" type="checkbox" name="chkBoxList$5" /><label for="chkBoxList_5">Text 6</label></span>

2 个答案:

答案 0 :(得分:2)

​$("span[itemValue=8] input")​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

这将为您提供itemValue(在此示例中)为8的范围内的复选框。

正如我在评论中所说的那样,将你的value属性放在span元素上有点令人困惑,因为你的选择器是$("checkbox[itemValue=" + item +"]"),所以它似乎也让你感到困惑 - 这不是很有意义。

您的选择器将查找checkbox元素 - 该元素不存在;您要查找的元素是input type “复选框”)。
并且它会尝试找到一个具有dataValue属性的属性 - 这些属性都没有,因为该属性位于 span 上。

答案 1 :(得分:1)

其他人已经回答了这个问题,但当我试图提出答案时,它似乎已被删除。

尝试:

$('span[itemValue=8] input')

(其中8是您要查找的ID;本例中恰好选择8)