把一段jquery代码写成javascript,出现了问题,不知道怎么修改。

原jQuery代码如下:浏览器都运行正常$(document).ready(function(){$('#wrap.wrap_frame.port_framedl').e... 原jQuery代码如下:浏览器都运行正常
$(document).ready(function(){
$('#wrap .wrap_frame .port_frame dl').each(function(){
$(this).mouseover(function(){
$('#wrap .wrap_frame .port_frame dl dd').removeClass('on');
$(this).children('dd').addClass('on');
}).mouseout(function(){
$(this).children('dd').removeClass('on');
});
});
});
转换成纯javascript,代码如下,有错误,:TypeError: field.children is not a function
function hasClass(ele,cls){
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls){
if(!this.hasClass(ele,cls)) {
ele.className += " "+cls;
}
}
function removeClass(ele,cls) {
if(hasClass(ele,cls)){
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className = ele.className.replace(reg,' ');
}
}
function MouOver(field){
var portDD = document.getElementsByTagName("dd");
for(var j = 0;j < portDD.length;j++){
removeClass(portDD[j],"on");
addClass(field.children('dd'),'on');
}
}
function MouOut(field){
removeClass(field.children('dd'),'on');
}
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;
}else {
window.onload = function(){
oldonload();
func();
}
}
}
function handleMouse(){
var portDl = document.getElementsByTagName("dl");
for(var i = 0;i < portDl.length; i++){
portDl[i].mouseover = MouOver(this);
portDl[i].mouseout = MouOut(this);
}
}
addLoadEvent(handleMouse);

HTML代码如下
<div class="port_frame">
<dl class="port1">
<dt>
<a href="#">
<img src="port.gif" alt="port1" title="port1">
</a>
</dt>
<dd>
<ul>
<li>Port:</li>
<li>FE1</li>
<li>Auto Nego:</li>
<li></li>
<li>Speed</li>
<li></li>
</ul>
</dd>
</dl>
<dl class="port2">
<dt>
<a href="#">
<img src="port_2.gif" alt="port1" title="port1">
</a>
</dt>
<dd>
<ul>
<li>Port:</li>
<li>FE1</li>
<li>Auto Nego:</li>
<li></li>
<li>Speed</li>
<li></li>
</ul>
</dd>
</dl>
</div>
哪位大侠知道怎么回事呢?
展开
 我来答
匿名用户
2013-03-19
展开全部
function hasClass(ele,cls){

return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls){
for(var i=0; i<ele.length; i++) {
if(ele[i].nodeType != 3 && !this.hasClass(ele[i],cls)) {
ele[i].className += " "+cls;
}
}
}
function removeClass(ele,cls) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
for(var i=0; i<ele.length; i++) {
if(ele[i].nodeType != 3 && hasClass(ele[i],cls)){
ele[i].className = ele[i].className.replace(reg,' ');
}
}
}
function MouOver(field){
var portDD = document.getElementsByTagName("dd");
for(var j = 0;j < portDD.length;j++){
removeClass(portDD[j],"on");
addClass(field.childNodes,'on');
}
}
function MouOut(field){
removeClass(field.childNodes,'on');
}
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;
}else {
window.onload = function(){
oldonload();
func();
}
}
}
function handleMouse(){
var portDl = document.getElementsByTagName("dl");
for(var i = 0;i < portDl.length; i++){
portDl[i].onmouseover = function() {
MouOver(this);
};
portDl[i].onmouseout = function() {
MouOut(this);
}
}
}
addLoadEvent(handleMouse);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f7bae8e6d
2013-03-19 · 超过18用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:32.8万
展开全部
眼都看花了 。自己用ie的调试工具吧。不行就用alert()一句一句的试 在不行就删方法 一个方法一个方法的试。应该是function MouOver(field) 参数的问题。我又没看到到你到底传的什么进去。。可能是我没仔细看 。- -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等待III希望
2013-03-19 · TA获得超过161个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:125万
展开全部
.chileren() 是jquery的方法。
在原生JS中是未定义的。
查找子节点 childNode属性
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式