首页 新闻 会员 周边 捐助

Jscript 事件中传递数组类型或字符串类型的参数

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-22 00:56

请教大家一个问题,感谢大家提供些思路:)

问题:

->1.动态拼接onclick='UpdateIsViewStateByMulity(1,3)'

->2.单击Onclick弹出的是 1,而不是1,3       

<script> 

$().ready(function () {
var joinsting = "";//存储数组转换字符串的ID
var SaveIdByArr = new Array();//存储动态传入的ID
  SaveIdByArr[0] = 1;//模拟动态传入的ID
  SaveIdByArr[1] = 4;
  joinsting = SaveIdByArr.join();//转换为字符串(1,4)

   var htmlByBubbleLayer = "<table>";
    htmlByBubbleLayer += "<tr><td></td><td><a href='javascript:void(0)'                 onclick='UpdateIsViewStateByMulity(" + joinsting + ")'>多级查看哈</a>

       </td></tr>";//注册查看事件

         htmlByBubbleLayer += "</table>";
           $("#BubbleLayer").html(htmlByBubbleLayer);//动态拼接层 

});//end ready Dom

</script>

 

function UpdateIsViewStateByMulity(joinsting) {//事件触发后的函数
   alert(joinsting);//只能获取到1,如何获取到(1,4)呢

    var IdByIsViewState=joinsting;//获取传递参数
    $.get("/Post/UpdateMultipleByIsViewId/", { IdByIsViewState: _idByState

     , ViewState: intViewState, r: Math.random() }

      , function (resultByUpdateIsViewState) {//异步更新

       }//end funUpdateIsViewStateByMulity

Frank铭的主页 Frank铭 | 初学一级 | 园豆:8
提问于:2013-12-21 20:21
< >
分享
最佳答案
1

你想获取4的值,加个参数就可以了

UpdateIsViewStateByMulity(joinsting,num)

收获园豆:5
angelshelter | 大侠五级 |园豆:9914 | 2013-12-21 22:46

感谢您老师:)
  恕我愚笨:

->1 这个地方怎么修改呀

onclick='UpdateIsViewStateByMulity(" + joinsting + ")'>多级查看哈</a>

 

Frank铭 | 园豆:8 (初学一级) | 2013-12-21 22:50

@Frank铭: 

 我大概明白您的思路:function UpdateIsViewStateByMulity(joinsting,num) {//事件触发后的函数

 这可以获取到(4,5)

 如果字符串是动态拼接的(4,5,6...)

那参数该怎么写呢 :)

 

谢谢您 

 

 

 

Frank铭 | 园豆:8 (初学一级) | 2013-12-21 23:14

@Frank铭:感谢老师的提示,我想了一个办法,可以解决当下,但深感效率很低,前后用了两次数组,希望更多老师给予新的答案。谢谢大家。 

function UpdateIsViewStateByMulity(SaveIdByArr) {

var transIdByIsViewState = new Array();//定义数组用来动态存储接收传递后的值

for (var i = 0; i < arguments.length; i++) {
transIdByIsViewState[i] = arguments[i];//从可变数组值arguments获取值
}
var _idByState = transIdByIsViewState.toString();//转换为(4,5),用于服务端处理

 

Frank铭 | 园豆:8 (初学一级) | 2013-12-22 00:55

@Frank铭: 因为你是写在html里面的,也就是onclick的形式,所以参数是硬编码。后台就无法检测它是一个数组。有一种方法是用json,比如[1,2,3]。但这样还是字符串,通过eval('('+str+')')把字转化成对象,也就是数组对象。

angelshelter | 园豆:9914 (大侠五级) | 2013-12-22 10:32

@angelshelter: 多谢您了:)

Frank铭 | 园豆:8 (初学一级) | 2013-12-22 17:24
其他回答(1)
0

SaveIdByArr数组转换成json格式

把   joinstring = SaveIdByArr.join();

换成    joinstring = JSON.stringify(SaveIdByArr);

dengxiaoting | 园豆:202 (菜鸟二级) | 2013-12-22 01:47

谢谢您,老师:)

支持(0) 反对(0) Frank铭 | 园豆:8 (初学一级) | 2013-12-22 17:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册