| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1239 人关注过本帖
标题:菜鸟请教一个关于getElementById()的问题?请各位高手帮帮忙!
取消只看楼主 加入收藏
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
菜鸟请教一个关于getElementById()的问题?请各位高手帮帮忙!
我本来是用getElementById()方法获取所有CheckBox的Id,但是CheckBox的Id有几个字母一样但是大小写不一样比如id=ABC,id=aBC,id=Abc,因为getElementById()方法的参数在IE里面是不区分大小写的,所以我只能获取到第一个id,我想知道还有什么方法可以获取到id同时又区分id的大小写。
搜索更多相关主题的帖子: 区分大小写 
2011-04-26 16:06
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
收藏
得分:0 
回复 2楼 foktime
不好意思,因为我是初学者,有很多东西不懂,所以有些东西没表达清楚。我是要通过ID来获取它的对象,比如我的checkbox存在这样几个ID,id=“ABC”,id=“Abc”,id=“abc”,但是getElementById这个方法的参数在IE里面是不区分大小写的,所以就只能获取到第一个ID的对象了。我是希望能有什么其他的方法能分别通过这三个ID获取到这个三个checkbox的对象,至于getElementById这个方法的参数在IE里面不区分大小写我是在网上查的,另外我在其他浏览器比如Firefox能获取到三个对象。
2011-04-27 09:29
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
收藏
得分:0 
var checkedBoxes = [];
function saveCheckedBoxes() {
            // find all checked boxes
            checkedList = $("div.dataGrid").find("input:checked");//<div class="dataGrid"></div>
            for (var i = 0; i < checkedList.length; i++) {
                // store in list
                checkedBoxes[i] = checkedList[i].id;
            
      
function restoreCheckedBoxes() {
            for (var i = 0; i < checkedBoxes.length; i++) {
                // for some reason jQuery doesn't work here
                var checkBox = document.getElementById(checkedBoxes[i]);
                if (checkBox != null)
                    checkBox.setAttribute("checked", "checked");
            }

            checkedBoxes = [];  // clear out the list
        }
2011-04-27 11:14
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
收藏
得分:0 
不好意思不是我不想上全,只是我们这个项目用的是 MVC2这个框架,所以脚本和页面并不在同一个页面。我只能大致的贴一些代码了。
b.ascx
<table class=""expand-table"">
                <tr>
                    <td class=""table-child1"">
                        <input name=""## DataItem.get_columnValue() ##""  value=""## getFileSize(DataItem,""Name"") ##"" onclick=""StorageGroupCheckBox_onClick('## DataItem.get_columnValue() ##');"" id=""## DataItem.get_columnValue() ##"" type=""checkbox"" />
</td></tr></table>

a.aspx页
<div class="dataGrid">
        <% Html.RenderAction("a", "DataGrid"); %>
    </div>
//这里是把b.ascx加到这个页来

var checkedBoxes = [];
function ExpandOrCollapseGroup(event, sender, groupId) {
            saveCheckedBoxes();  // save all checked boxes
            CloudStorageGrid.ToggleGroupExpand(event, sender, groupId);
            restoreCheckedBoxes();
                  }
function saveCheckedBoxes() {
            checkedList = $("div.dataGrid").find("input:checked");//<div class="dataGrid"></div>
            for (var i = 0; i < checkedList.length; i++) {
                checkedBoxes[i] = checkedList[i].id;
            
      
function restoreCheckedBoxes() {
            for (var i = 0; i < checkedBoxes.length; i++) {
                var checkBox = document.getElementById(checkedBoxes[i]);
                if (checkBox != null)
                    checkBox.setAttribute("checked", "checked");
            }

            checkedBoxes = [];          }
可能这样贴还是不清楚,但是我也只能这样贴了。
我的思路是这样的:checkedBoxes[i]已经得到所有ID了,我想把checkedBoxes[i]里面的值全部转换成小写或者大写,这样就会产生几个相同的ID了,再用一个判断假如不存在相同的ID就直接把checkedBoxes[i]传到下一个方法用,要是存在的话,就在checkedBoxes[i]后面加一个常数再传到下一个方法。我用很多方式但是无法实现,所以我也不确定这个方法能行的通不?

[ 本帖最后由 bocai_aixg 于 2011-4-27 14:46 编辑 ]
2011-04-27 14:36
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
收藏
得分:0 
那个html页也不好贴的,和我的源代码没很大的区别,至于id定义的话那部份已经成型了,而且也涉及到比较多地方调用,再说还不是我写的,所以那部分可能是不能更改啦!只能改变脚本来控制了,我同事的意思是要我用jQuery的一些方法和属性来实现,但是我对脚本这方面了解的不多,所以只有先在网上看些案例吧!所以请高手门帮我提提建议吧!
2011-04-27 20:51
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
收藏
得分:0 
大哥,用了你的代码不过好像获取不到对象,不知是不是脚本和页面并不在同一个页面使得this没有用呢?
2011-04-28 11:24
bocai_aixg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-24
收藏
得分:0 
   function saveCheckedBoxes() {
            // find all checked boxes
            checkedList = $("div.dataGrid").find("input:checked");
            for (var i = 0; i < checkedList.length; i++) {
                // store in list
                checkedBoxes[i] = checkedList[i].id;
            }
        }

        // Re-check all the checkboxes (since expanding/collapsing clears them out)
        function restoreCheckedBoxes() {
            for (var i = 0; i < checkedBoxes.length; i++) {
                // for some reason jQuery doesn't work here
                var checkBox = $("[id=" + checkedBoxes[i] + "]")
                if (checkBox != null)
                    $("[id=" + checkedBoxes[i] + "]").attr("checked", true);
            }

            checkedBoxes = [];  // clear out the list
        }
最后是这样实现的,谢谢你的关注和指导!
2011-04-28 18:48
快速回复:菜鸟请教一个关于getElementById()的问题?请各位高手帮帮忙!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013426 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved