-1

先生,我需要使用 jquery 在 tag 中添加元素td,其中包含trand 。divonmouseoutonmouseover

如果找到onmouseout="ANY FUNCTION",那么我需要添加属性onblur="SAME FUNCTION AS onmouseout"

然后如果找到onmouseover="Any Function"那么我需要添加属性onfocus="sane functions as onmouseover"

此函数包含在 tag 中td, tr or div

示例 td:

<td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="zz1_GS">

然后我需要:

<td onmouseover="Menu_A(this)" onfocus="Menu_A(this)" onmouseout="Menu_Unhvr(this)" onblur="Menu_Unhvr(this)" onkeyup="Menu_Key(this)" id="zz1_GS">

示例 tr:

<tr onmouseover="Menu_HoverDynamic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="zz86756f">

然后我需要这样的东西:

<tr onmouseover="MDynamic(this)" onfocus="MDynamic(this)" onmouseout="Menu_r(this)" onblur="Menu_r(this)" onkeyup="Menu_Ky(this)" id="zz86756f">

示例 div:

<div class="1_5656" id="d867444f" onmouseover="PopOUp(this)" onmouseout="PopOStop(this)" style="text-align:center;">

然后我需要这样的东西:

<div class="1_5656" id="d867444f" onmouseover="PopOUp(this)" onfocus="PopOUp(this)" onmouseout="PopOStop(this)" onblur="PopOStop(this)" style="text-align:center;">

id名称不一样,td和tr的级别不统一。

谁能帮我实现这一目标?

我已经完成了这段代码,但它不起作用:

            $('div[onmouseout]').each(function() {
        $(this).attr('onblur', $(this).attr('onmouseout'));
        }

        $('div[onmouseover]').each(function() {
        $(this).attr('onfocus', $(this).attr('onmouseover'));
        }

        $('tr[onmouseout]').each(function() {
        $(this).attr('onblur', $(this).attr('onmouseout'));
        }

        $('tr[onmouseover]').each(function() {
        $(this).attr('onfocus', $(this).attr('onmouseover'));
        }

        $('td[onmouseout]').each(function() {
        $(this).attr('onblur', $(this).attr('onmouseout'));
        }

        $('td[onmouseover]').each(function() {
        $(this).attr('onfocus', $(this).attr('onmouseover'));
        }
4

2 回答 2

0

尝试这个

$("div, tr, td").not("[onmouseout='']").each(function () {
    $(this).attr('onblur', $(this).attr('onmouseout'));
});

$("div, tr, td").not("[onmouseover='']").each(function () {
    $(this).attr('onfocus', $(this).attr('onmouseover'));
});

更新。 刚刚检查过,效果很好。重新检查我的代码以找出失败的地方:

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
 <script>
 function PopOUp() {}
 function PopOStop() {}

 $(function () {
    $("div, tr, td").not("[onmouseout='']").each(function () {
        $(this).attr('onblur', $(this).attr('onmouseout'));
    });

    $("div, tr, td").not("[onmouseover='']").each(function () {
        $(this).attr('onfocus', $(this).attr('onmouseover'));
    });
});
 </script>
</head>
<body>
<div class="1_5656" id="d867444f" onmouseover="PopOUp(this)" onmouseout="PopOStop(this)" style="text-align:center;"></div>

<table onmouseover="PopOUp(this)" onmouseout="PopOStop(this)">
    <tr onmouseover="PopOUp(this)" onmouseout="PopOStop(this)">
        <td onmouseover="PopOUp(this)" onmouseout="PopOStop(this)"></td>
    </tr>
</table>
</body>
</html>
于 2013-04-05T14:56:56.603 回答
0

实际上可以通过复制属性并使用空属性选择器来获取具有该特定属性的所有元素来做到这一点:

var $mo = $('[onmouseover]'),
    fstr = $mo.attr('onmouseover'),
    bstr = $mo.attr('onmouseout');
$mo.attr('onfocus',fstr).attr('onblur',bstr);
于 2013-04-05T14:47:36.890 回答