jqery的each问题

踏平扶桑 技术主管  2013-01-21 12:07:24

$("input[type=checkbox][id^='" + s_ParentID + "']").each(function (i)
{
alert($(this).text());
})


获取s_ParentID 变量开头的checkbox,为什么输出text()是空?,如果输出val()的话是on。
谢谢。
...全文
229 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
踏平扶桑 2013-01-21
效果已经实现,代码分享如下:

function CheckParent(id)
{
    var s_ParentID = id.substring(0, id.indexOf('_'));
    if (!$("input[type=checkbox][id='" + s_ParentID + "']").is(":checked"))
    {
        $("input[type=checkbox][id='" + s_ParentID + "']").attr("checked", true);
    }
    else
    {
        var l = $("input[type=checkbox][id^='" + s_ParentID + "']");
        var tf = false;
        $.each(l, function (idx, item)
        {
            if (s_ParentID != $(item)[0].id)
            {
                if ($("input[type=checkbox][id='" + $(item)[0].id + "']").is(":checked"))
                {
                    tf = true;
                }
            }
        })
        $("input[type=checkbox][id='" + s_ParentID + "']").attr("checked", tf);
    }
}
  • 打赏
  • 举报
回复
踏平扶桑 2013-01-21
引用 6 楼 showbo 的回复:
获取选择的不用each,在增加一个:checked就好了,获取所有选择的checkbox的值map下就得到了 JavaScript code?123var s = $("input[type=checkbox][id^='" + s_ParentID + "']:checked").map(function(){return this.value;}).get().jo……
谢谢,我是想做个checkbox联动(根--节点模式) 现在全选(全不选)某个根节点,其子节点实现全选(全不选)的功能实现了 子节点选中后自动选中根节点也实现了,现在要做的是 当子节点全部都不选中的时候 根节点也不选中(比如先选中了根节点,然后手动取消当前根节点下面的所有子节点的选中状态)。 我是想通过ID获取当前根节点下面的所有子checkbox(子节点都是以跟节点的名字为开头),然后each,如each完还是没有发现子节点有被选中的情况,就取消根节点的选中状态,否者return false退出each。
  • 打赏
  • 举报
回复
bbjbepzz 2013-01-21
引用 5 楼 5653325 的回复:
引用 4 楼 showbo 的回复:引用 3 楼 5653325 的回复:引用 1 楼 bbjbepzz 的回复:表单元素哪来的text 我这获取指定字符串开头的 checkbox 然后进行each不行吗? 1#不是说了,checkbox没有text(),text()是是由所有匹配元素包含的文本内容组合起来的文本。 val()为on是应为你没有给checkb……
你获取的值为on是因为你没有给checkbox元素的value赋值,你赋个值,看下选中元素的val()还是on吗
  • 打赏
  • 举报
回复
获取选择的不用each,在增加一个:checked就好了,获取所有选择的checkbox的值map下就得到了

var s = $("input[type=checkbox][id^='" + s_ParentID + "']:checked").map(function(){return this.value;}).get().join();

alert(s)
  • 打赏
  • 举报
回复
踏平扶桑 2013-01-21
引用 4 楼 showbo 的回复:
引用 3 楼 5653325 的回复:引用 1 楼 bbjbepzz 的回复:表单元素哪来的text 我这获取指定字符串开头的 checkbox 然后进行each不行吗? 1#不是说了,checkbox没有text(),text()是是由所有匹配元素包含的文本内容组合起来的文本。 val()为on是应为你没有给checkbox指定value属性,这样默认va……
我的意思是,我先获取所有指定字符串开头的checkbox,然后进行each,判断有没有选中。 现在我用问题中的循环提取不到,那个text()是我测试用的。 我用 var l = $("input[type=checkbox][id^='" + s_ParentID + "']"); alert(l.length);是可以获取到数量的,但是不知道怎么用each循环。 谢谢。
  • 打赏
  • 举报
回复
引用 3 楼 5653325 的回复:
引用 1 楼 bbjbepzz 的回复:表单元素哪来的text 我这获取指定字符串开头的 checkbox 然后进行each不行吗?
1#不是说了,checkbox没有text(),text()是是由所有匹配元素包含的文本内容组合起来的文本。 val()为on是应为你没有给checkbox指定value属性,这样默认value属性值为on
  • 打赏
  • 举报
回复
踏平扶桑 2013-01-21
引用 1 楼 bbjbepzz 的回复:
表单元素哪来的text
我这获取指定字符串开头的 checkbox 然后进行each不行吗?
  • 打赏
  • 举报
回复
bbjbepzz 2013-01-21
你要获取选中的元素可以用$(':checkbox:checked').each();
  • 打赏
  • 举报
回复
bbjbepzz 2013-01-21
表单元素哪来的text
  • 打赏
  • 举报
回复
相关推荐
发帖
Ajax
加入

5.2w+

社区成员

Web 开发 Ajax
申请成为版主
帖子事件
创建了帖子
2013-01-21 12:07
社区公告
暂无公告