JS函数内部是否可以返回触发自身的DOM对象?如何返回呢? <select name=a id=a onchange="f1();"><option value='0'>00</option></select>因为select对象是后期生成的,所以不方便从f1()参数中传入对象,可否从函数内部获取dom对象自身,以便下一步操作呢?f1(){ return('这里如何返回函数的触发对象a ');} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script>function f1(el){alert(el.id)}</script><span id="test" onclick="f1(this)">123</span> <select name=a id=a onchange="f1(this);"> <option value='0'>00 </option> </select> function f1(obj){ alert(obj.id); /**这里的obj就是 <select name=a id=a onchange="f1(this);"> 里面的this。 this指针,指向了这个标签的自身。*/}--------------- 给分 ---------------- 可能你的<select name=a id=a onchange="f1();"> 标签是动态生成的,比如jsp的for循环。你可以把我写的东西放在window.onload = function(){// your code will write here};如果我理解错误,请你举个例子。我看看情况,你可以描述一下。这么看你给出的代码,我上面的方法可以解决的。 <HTML> <HEAD> <script> function f1(){ window.Event = window.Event || new Object(); Event.element = Event.element || function(event) { return event.target || event.srcElement; }; var event = window.event || arguments.callee.caller.arguments[0]; var element = window.Event.element(event); alert(element.options[element.selectedIndex].value);};</script> </HEAD> <BODY> <select name=a id=a onchange="f1();"> <option value='0'>00 </option> <option value='1'>11 </option></select></BODY> </HTML> html部分:<select name=aa id=aa><option value='000'>000</option></select><span name='attArea' id='attArea'></span>---------------------------------------------脚本部分:<script>function G(id) { return document.getElementById(id); }window.onload = function(){ var SelectPlus = G("aa"); SelectPlus.onchange = function() { f1(0); };}function f1(nIndex) { alert('需要获得当前选择的值。'); Childs=G("attArea").childNodes; for(var i=Childs.length;i>=0;i--){ if ( i > nIndex){ G("attArea").removeChild(Childs[i-1]); }else{ var S = document.createElement('select'); S.onchange = function() { ChgNode(nIndex+1);//这里又产生一个select,同样如果改变了这个select,就增加一个下级select, }; S.options[0] = new Option('请选择', ''); G("attArea").appendChild(S); } }}</script>不知道意思明白了么? <HTML> <HEAD> <script> </script> <script> function G(id) { return document.getElementById(id); } window.onload = function() { var SelectPlus = G("aa"); SelectPlus.onchange = function() { f1(0); }; } function f1(nIndex) { window.Event = window.Event || new Object(); Event.element = Event.element || function(event) { return event.target || event.srcElement; }; var event = window.event || arguments.callee.caller.arguments[0]; var element = window.Event.element(event); alert(element.options[element.selectedIndex].value);Childs=G("attArea").childNodes; for(var i=Childs.length;i>=0;i--){ if ( i > nIndex){ G("attArea").removeChild(Childs[i-1]); }else{ var S = document.createElement('select'); S.onchange = function() { ChgNode(nIndex+1);//这里又产生一个select,同样如果改变了这个select,就增加一个下级select, }; S.options[0] = new Option('请选择', ''); G("attArea").appendChild(S); } } } </script></HEAD> <BODY> <select name=aa id=aa> <option value='000'>000 </option><option value='111'>111 </option> </select> <span name='attArea' id='attArea'> </span></BODY> </HTML> 如何延迟onkeydown事件 高手帮帮我啊 求一个JS函数,能将格式字符串2010-1-5为2010-01-05 【cloudgamer学习之】后面是加分号还是不加 大侠门,刚学ajax 我想写个最简单的从服务器调用文本 小菜问题没搞定睡不着觉,虚心求教,小弟我初学js 能否动态改变一个窗口的statusbar,menubar,toolbar属性,即可以动态设置显示、隐藏工具条等。 如何找到页面中将被post到服务器的参数 阿信?还有其它高手呢?今天用了200分了,问题没有解决!!! 请教;如何实现SELECT关联? 下拉菜单鼠标移走没隐藏? 如何修改样式 line and border
<span id="test" onclick="f1(this)">123</span>
<select name=a id=a onchange="f1(this);"> <option value='0'>00 </option> </select>
function f1(obj){
alert(obj.id);
/**这里的obj就是 <select name=a id=a onchange="f1(this);"> 里面的this。
this指针,指向了这个标签的自身。*/
}--------------- 给分 ----------------
如果我理解错误,请你举个例子。我看看情况,你可以描述一下。这么看你给出的代码,我上面的方法可以解决的。
<HTML>
<HEAD>
<script>
function f1(){
window.Event = window.Event || new Object();
Event.element = Event.element || function(event) { return event.target || event.srcElement; };
var event = window.event || arguments.callee.caller.arguments[0];
var element = window.Event.element(event);
alert(element.options[element.selectedIndex].value);
};
</script>
</HEAD> <BODY>
<select name=a id=a onchange="f1();"> <option value='0'>00 </option> <option value='1'>11 </option></select>
</BODY>
</HTML>
<span name='attArea' id='attArea'></span>---------------------------------------------
脚本部分:
<script>
function G(id) { return document.getElementById(id); }window.onload = function()
{
var SelectPlus = G("aa");
SelectPlus.onchange = function()
{
f1(0);
};
}
function f1(nIndex)
{ alert('需要获得当前选择的值。'); Childs=G("attArea").childNodes;
for(var i=Childs.length;i>=0;i--){
if ( i > nIndex){
G("attArea").removeChild(Childs[i-1]);
}else{
var S = document.createElement('select');
S.onchange = function() {
ChgNode(nIndex+1);//这里又产生一个select,同样如果改变了这个select,就增加一个下级select,
};
S.options[0] = new Option('请选择', '');
G("attArea").appendChild(S);
}
}}
</script>不知道意思明白了么?
<HTML>
<HEAD>
<script> </script>
<script>
function G(id) { return document.getElementById(id); } window.onload = function()
{
var SelectPlus = G("aa");
SelectPlus.onchange = function()
{
f1(0);
};
}
function f1(nIndex)
{
window.Event = window.Event || new Object();
Event.element = Event.element || function(event) { return event.target || event.srcElement; };
var event = window.event || arguments.callee.caller.arguments[0];
var element = window.Event.element(event);
alert(element.options[element.selectedIndex].value);Childs=G("attArea").childNodes;
for(var i=Childs.length;i>=0;i--){
if ( i > nIndex){
G("attArea").removeChild(Childs[i-1]);
}else{
var S = document.createElement('select');
S.onchange = function() {
ChgNode(nIndex+1);//这里又产生一个select,同样如果改变了这个select,就增加一个下级select,
};
S.options[0] = new Option('请选择', '');
G("attArea").appendChild(S); }
} }
</script>
</HEAD> <BODY>
<select name=aa id=aa> <option value='000'>000 </option><option value='111'>111 </option> </select>
<span name='attArea' id='attArea'> </span>
</BODY>
</HTML>