我试图通过使用Javascript的HTML生成将变量传递给另一个函数,但它并没有通过。这是我的代码:
var wer_people_btn1 = document.createElement("span");
wer_people_btn1.setAttribute('onclick', 'SendData(' + user.ID + " ANDINFO " + susData + ')');
function SendData(reply) {
}
user.ID包含" 3323"
susData包含"<数据> (info_user)"
我得到的错误:
参数列表之后的Uncaught SyntaxError:missing)
我认为<>括号在这里引起麻烦。如何将这些作为字符串传递给我的函数?
答案 0 :(得分:1)
因为您发送的内容,该数据必须是字符串。因此字符串必须在引号 override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = self.collectionView?.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! theCell
//add the images from the array
cell.theImage.image = theImages[indexPath.row]
return cell
}
或'
中,但不应该发生冲突。所以使用Javascript的单引号和双引号,或者只使用一个转义字符"
\'
如评论中所述,只能传递事件和元素(this)。
更好的解决方法:上面将为SendData创建单个字符串输入,但是您希望作为单独的参数接收,然后下面的一个工作wer_people_btn1.setAttribute('onclick', "SendData('" + user.ID + " ANDINFO " + susData + "')");
,其中SendData的函数原型是SendData(userId,susData)"SendData(" + user.ID + ",'" + susData + "')");
如果您需要传递自定义对象,请查看此SO 1st answer,这是我所知道的唯一可能方式。