关于实现子元素获取/失去焦点时动态改变父元素样式的问题... 本帖最后由 mycggo 于 2010-05-21 14:36:26 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function label_class(){ if(!document.getElementsByTagName) return false; var input_t=document.getElementsByTagName("input"); for(var i=0; i<input_t.length; i++) { var ft=input_t[i]; if(ft.className=="i_t" && ft.parentNode.className=="s_i") { ft.onfocus = function() { this.parentNode.className="s_i_v"; } ft.onblur = function() { this.parentNode.className="s_i"; } } }} if(ft.className == "i_t" && ft.parentNode.className=="s_i") && 修改过后还是不行 OR:ft.getAttribute("class") --> ft.getAttribute("className") 把:ft.getAttribute("class")=="i_t" & ft.parentNode.className=="s_i"修改成:if(ft.className == "i_t" && ft.parentNode.className=="s_i")后在IE7和IE6下面都正常了,真是奇怪,难道:ft.getAttribute("class")=="i_t"这样的写法IE7和IE6不支持? 后在IE7和IE6下面都正常了,真是奇怪,难道:ft.getAttribute("class")=="i_t"这样的写法IE7和IE6不支持?----------ie的bug 呵呵 其实是支持的只是有一点你要知道 class==>className你试试ft.getAttribute("className")看看就知道了 经过测试ft.getAttribute("className") IE7和IE6都是支持的,但FF等标准浏览器不支持。ft.getAttribute("class") IE7和IE6都是不支持的,但FF等标准浏览器支持。ft.className=="input_t" 浏览器都支持。 所以我让你写ft.className。其实这个涉及到一个改进问题~! class因为是javascript的保留字 因此在JS里操作DOM时把class改成了className而之前IE浏览器是全部使用这个名称然而后来发现通过属性方式查找使用原名称更适合xml dom的规范,则xhtml,而又不影响js的保留字比如a.getAttribute("class")并不会和class保留字冲突。于是就修正为当前的方式。其中getAttribute其实是xml dom的方法,而非JS的而a.className影响到了保留字则不会改成a.class 关于js控制的一个显示位置的问题 jquery怎么获取上一个元素的值或者上上个元素的值求助.. 请大家解决这个jQuery的问题 求一javascript? 高手帮忙:如何 判断 textarea中内容有多少行? 求Javascript禁用CTRL+鼠标中建的代码 内容显示不出来? 求判断是否安装FLASH插件,并且自动下载安装FLASH插件的代码 高手请进(80)在线等呆 我想在网页中键鼠标右键弹出自己的菜单,但不知道如何不让它显示IE自带的菜单? 有没有像My97DatePicker控件的时间(小时,分,秒)的输入程序 请求最新网页new Date()
{
if(!document.getElementsByTagName) return false;
var input_t=document.getElementsByTagName("input");
for(var i=0; i<input_t.length; i++)
{
var ft=input_t[i];
if(ft.className=="i_t" && ft.parentNode.className=="s_i")
{
ft.onfocus = function()
{
this.parentNode.className="s_i_v";
}
ft.onblur = function()
{
this.parentNode.className="s_i";
}
}
}
}
ft.getAttribute("class") --> ft.getAttribute("className")
修改成:if(ft.className == "i_t" && ft.parentNode.className=="s_i")后在IE7和IE6下面都正常了,真是奇怪,难道:ft.getAttribute("class")=="i_t"这样的写法IE7和IE6不支持?
----------
ie的bug
只是有一点你要知道 class==>className
你试试ft.getAttribute("className")看看就知道了
经过测试
ft.getAttribute("className") IE7和IE6都是支持的,但FF等标准浏览器不支持。
ft.getAttribute("class") IE7和IE6都是不支持的,但FF等标准浏览器支持。
ft.className=="input_t" 浏览器都支持。
其实这个涉及到一个改进问题~!
而之前IE浏览器是全部使用这个名称然而后来发现通过属性方式查找使用原名称更适合xml dom的规范,则xhtml,而又不影响js的保留字
比如a.getAttribute("class")并不会和class保留字冲突。于是就修正为当前的方式。其中getAttribute其实是xml dom的方法,而非JS的
而a.className影响到了保留字则不会改成a.class