用JS循环给单选按钮设置onclick 没有办法.你可以不用value 自己定义属性 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以通过事件的触发者this,判断点击哪一个对象。参考如下代码:<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /><input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /><input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script type="text/javascript">function aa() { var radio = document.getElementsByName("attr"); for (var i = 0; i < radio.length; i++){ radio[i].onclick = function() { bb(this.value); } }}function bb(i) { alert(i);}aa();</script> function aa() { var radio = document.getElementsByName("attr"); for(var i=0;i <radio.length;i++) { eval("radio[i].onclick = function() { bb("+i+");}"); } } 是2 那是因为你传递的参数和循环变量的名称一样,数组里一个有三个元素,当循环完以后i的值当然是2了。不想使用value属性,那你想弹出什么内容啊?? radio[i].onclick = function() { bb(i); 只起到绑定函数的作用。经过循环后 i=2;在触发的时候是以2作为参数值的。除非你在激活事件的时候使用不同的参数。请参照 http://blog.csdn.net/APOLLO_TS/archive/2009/02/27/3942122.aspx 写一个函数,主要是fireEvent用法。 在onclick触发时都是去调用function bb(i) { alert(i); }这里的i存放的是最后一次循环i的值 也就是length-1所以不管你点哪个都alert length-1就等于你给一个对象的一个值赋了很多值结果只留下了最后一次的值不使用和自身关联的方式应该不行 在eval里调用外部函数 书上说有风险 可也没看出来啥风险 这个正解 用闭包两个方法第一个<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 有一段这样的JS <script>function aa() { var radio = document.getElementsByName("attr"); for(var i=0;i <radio.length;i++) { radio[i].onclick = (function(i){ return function (){ bb(i); } })(i); } } function bb(i) { alert(i); }aa();</script>第二个自己写个方法<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 有一段这样的JS <script>Function.prototype.bind = function(){ // 自己定义的方法 var oThis = this, args = Array.prototype.slice.call(arguments), obj = args.shift(); return function (){ obj.apply(oThis, args); }}function aa() { var radio = document.getElementsByName("attr"); for(var i=0;i <radio.length;i++) { radio[i].onclick = bb.bind(bb,i); } } function bb(i) { alert(i); }aa();</script> 第二个方法有误调整下<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> 有一段这样的JS <script>Function.prototype.bind = function(){ // 自己定义的方法 var oThis = this, args = Array.prototype.slice.call(arguments), obj = args.shift(); return function (){ oThis.apply(obj, args); }}function aa() { var radio = document.getElementsByName("attr"); for(var i=0;i <radio.length;i++) { radio[i].onclick = bb.bind(radio[i],i); } } function bb(i) { alert(i); }aa();</script> <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script language="javascript"><!--function aa() { var radio = document.getElementsByName("attr"); for(var i=0;i <radio.length;i++) (function(k){ radio[k].onclick = function() { alert(k);//bb(k); } })(i)} function bb(i) { alert(i); } onload=aa//--></script> <input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br /> <input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br /> <input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script language="javascript"><!--function aa() { var radio = document.getElementsByName("attr"); for(var i=0;i <radio.length;i++) (function(k){ radio[k].onclick = function() { bb(k);//alert(k); } })(i)} function bb(i) { alert(i); } onload=aa//--></script> 有关js调用控件的问题,急急急! falsf导航菜单问题 鼠标移动到文本框 弹出颜色代码器? !!把分全供上了,还是昨天关于框架闪动的问题,现把代码贴出来给大家参考,看如何解决为好? fckeditor设置菜单默认状态是折叠的,怎么设置?谢谢! javascript高手请进,解决马上就送分 编写 htc 时,遇到求知的运行时错误: element.innerHTML = strHTML; 一个很简单的javascript例子,赐教!!! 如何把动态光标转换成网页上的图象 为何页面出现乱码? 请问javascript的this对象问题? 一个加密了的弹窗代码,有什么办法解密?
<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
<input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
<input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label>
<script type="text/javascript">
function aa() {
var radio = document.getElementsByName("attr");
for (var i = 0; i < radio.length; i++){
radio[i].onclick = function() {
bb(this.value);
}
}
}function bb(i) {
alert(i);
}aa();
</script>
{
var radio = document.getElementsByName("attr");
for(var i=0;i <radio.length;i++)
{
eval("radio[i].onclick = function() { bb("+i+");}");
}
}
i的值当然是2了。
不想使用value属性,那你想弹出什么内容啊??
bb(i); 只起到绑定函数的作用。经过循环后 i=2;在触发的时候是以2作为参数值的。除非你在激活事件的时候使用不同的参数。请参照 http://blog.csdn.net/APOLLO_TS/archive/2009/02/27/3942122.aspx 写一个函数,主要是fireEvent用法。
function bb(i)
{
alert(i);
}
这里的i存放的是最后一次循环i的值 也就是length-1
所以不管你点哪个都alert length-1
就等于你给一个对象的一个值赋了很多值
结果只留下了最后一次的值
不使用和自身关联的方式应该不行
两个方法
第一个
<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
<input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
<input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label>
有一段这样的JS
<script>
function aa()
{
var radio = document.getElementsByName("attr");
for(var i=0;i <radio.length;i++)
{
radio[i].onclick = (function(i){
return function (){
bb(i);
}
})(i);
}
} function bb(i)
{
alert(i);
}
aa();
</script>第二个自己写个方法
<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
<input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
<input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label>
有一段这样的JS
<script>
Function.prototype.bind = function(){ // 自己定义的方法
var oThis = this, args = Array.prototype.slice.call(arguments), obj = args.shift();
return function (){
obj.apply(oThis, args);
}
}
function aa()
{
var radio = document.getElementsByName("attr");
for(var i=0;i <radio.length;i++)
{
radio[i].onclick = bb.bind(bb,i);
}
} function bb(i)
{
alert(i);
}
aa();
</script>
<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
<input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
<input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label>
有一段这样的JS
<script>
Function.prototype.bind = function(){ // 自己定义的方法
var oThis = this, args = Array.prototype.slice.call(arguments), obj = args.shift();
return function (){
oThis.apply(obj, args);
}
}
function aa()
{
var radio = document.getElementsByName("attr");
for(var i=0;i <radio.length;i++)
{
radio[i].onclick = bb.bind(radio[i],i);
}
} function bb(i)
{
alert(i);
}
aa();
</script>
<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
<input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
<input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script language="javascript">
<!--
function aa() {
var radio = document.getElementsByName("attr");
for(var i=0;i <radio.length;i++)
(function(k){
radio[k].onclick = function() {
alert(k);//bb(k);
}
})(i)
} function bb(i) {
alert(i);
}
onload=aa
//-->
</script>
<input type="radio" name="attr" value="1" id="attr1"> <label for="attr1">RMB </label> <br />
<input type="radio" name="attr" value="2" id="attr2"> <label for="attr2">MY </label> <br />
<input type="radio" name="attr" value="3" id="attr3"> <label for="attr3">YB </label> <script language="javascript">
<!--
function aa() {
var radio = document.getElementsByName("attr");
for(var i=0;i <radio.length;i++)
(function(k){
radio[k].onclick = function() {
bb(k);//alert(k);
}
})(i)
} function bb(i) {
alert(i);
}
onload=aa
//-->
</script>