爵士
我需要使用jquery在标记td
,tr
和div
中添加包含onmouseout
和onmouseover
的元素。
如果找到了onmouseout="ANY FUNCTION"
,那么我需要添加属性onblur="SAME FUNCTION AS onmouseout"
。
然后,如果找到onmouseover="Any Function"
,那么我需要添加属性onfocus="sane functions as onmouseover"
。
此功能包含在标记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'));
}
答案 0 :(得分:0)
实际上可以通过复制属性来实现这一点,并使用空属性选择器来获取具有该特定属性的所有元素:
var $mo = $('[onmouseover]'),
fstr = $mo.attr('onmouseover'),
bstr = $mo.attr('onmouseout');
$mo.attr('onfocus',fstr).attr('onblur',bstr);
答案 1 :(得分: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>