比如要做个省份选择的控件,实现在select里填充省份。
一直以来我用的笨办法是在province.htm文件里实现它,然后在其他的test.htm文件里通过jquery动态的载入这个页面,但是这样做会出现的问题是当同一个页面多次载入province.htm时select的id会重复。在此请教各位大牛都是怎样在htm中自定义控件的?
一直以来我用的笨办法是在province.htm文件里实现它,然后在其他的test.htm文件里通过jquery动态的载入这个页面,但是这样做会出现的问题是当同一个页面多次载入province.htm时select的id会重复。在此请教各位大牛都是怎样在htm中自定义控件的?
或者说怎样在同一个页面内多次引入一个htm文件时保证里面的id不被影响?
没有啊,如果我这个控件里包含多个像div和a之类的基础控件,每一个都要生成id吗? 这样不是很麻烦?
你可以写一个两段式的id, XXX:YYYY 这样的结构。
控件最初只有YYYY这段的id,当放到某个container时 比如div的id是 XXX,那么就将控件内部的东西的id变成XXX:YYYY
这样的话,我在控件内部怎么用js调用基础控件呢,id还未生成啊。
你看,我现在只知道用id精确的找到某个基础控件,如果id并不确定,我在内部怎样找到基础控件呢?
<head>
<title></title>
<style type="text/css">
.selPro{ background-color:#8ADEFF; }
.selPro2{ background-color:#A4C8EE; }
</style>
<script type="text/javascript">
function BuildProvinceSelect(id,classStr,styleStr) {
var str = "";
str += "<select id='" + id + "' class='" + (typeof (classStr) == "undefined" ? "" : classStr)+ "' style='" + (typeof (styleStr) == "undefined" ? "" : styleStr) + "'>";
str += "<option value='广东'>广东</option>";
str += "<option value='广西'>广西</option>";
str += "</select>";
document.write(str);
}
</script>
</head>
<body>
<script type="text/javascript"> BuildProvinceSelect("select1","selPro","width:200px;")</script>
<script type="text/javascript"> BuildProvinceSelect("select2", "selPro2", "width:300px;")</script>
</body>
</html>
所谓自定义的控件 比方说下拉框 我们可以做一个自己的下拉框 “text+图片”这种都是用js动态生成的 包括样式的配置 最后拼出最终的html标签 然后innHTML到一个div或其他容器中 这个控件就出来了
您好,关于“最后拼出最终的html标签 然后innHTML到一个div或其他容器中 这个控件就出来了”,这句话怎么讲呢?
我试过用iframe,但是用的时候整个iframe相当于一个页面,所有其他控件只能在这个iframe的大小范围内,如果我想在iframe以外显示一个弹出层就不可能。
您好,这样的话,同一个页面多次载入province.htm时select的class也会重复吧?我得避免呀
9楼的方法很好,可以用,让我受益匪浅。主要是我还想看看有没有什么方法能让html代码和js代码相分离的,顺便多向大家学习一点,集思广益嘛如果htm和js无法分离,我就用9楼的。非常感谢。。