Javascript将变量传递给onclick并不起作用

时间:2015-09-19 20:09:15

标签: javascript html javascript-objects

我试图通过使用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)

我认为<>括号在这里引起麻烦。如何将这些作为字符串传递给我的函数?

1 个答案:

答案 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,这是我所知道的唯一可能方式。