请教大家一个问题,感谢大家提供些思路:)
问题:
->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
你想获取4的值,加个参数就可以了
UpdateIsViewStateByMulity(joinsting,num)
感谢您老师:)
恕我愚笨:
->1 这个地方怎么修改呀
onclick='UpdateIsViewStateByMulity(" + joinsting + ")'>多级查看哈</a>
@Frank铭:
我大概明白您的思路:function UpdateIsViewStateByMulity(joinsting,num) {//事件触发后的函数
这可以获取到(4,5)
如果字符串是动态拼接的(4,5,6...)
那参数该怎么写呢 :)
谢谢您
@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铭: 因为你是写在html里面的,也就是onclick的形式,所以参数是硬编码。后台就无法检测它是一个数组。有一种方法是用json,比如[1,2,3]。但这样还是字符串,通过eval('('+str+')')把字转化成对象,也就是数组对象。
@angelshelter: 多谢您了:)
SaveIdByArr数组转换成json格式
把 joinstring = SaveIdByArr.join();
换成 joinstring = JSON.stringify(SaveIdByArr);
谢谢您,老师:)