Javascript数字-字符串DIV点击奇怪转换

Javascript Number-String DIV onclick strange conversion

本文关键字:转换 DIV 数字 字符串 Javascript      更新时间:2023-09-26

我所做的基本上是将person的Facebook-ID分配给div中的onclick-Event。div本身是一个字符串,因为我稍后通过innerHTML将其分配给dom属性

"<div onclick='openFbFriend(" + friendsArray[i]['facebookID'] + ");' class='row'>";

现在openFbFriend只是打开这个人的Facebook-Page:

function openFbFriend(fbID) {
    window.open("https://www.facebook.com/" + fbID, "_blank");
}

对大多数人都有效。我现在所经历的是一些链接坏了,我会重定向到这个页面:https://www.facebook.com/10204840506352732

我调查了一下,非常奇怪,但它发生了,当FB-ID长于或等于17位数字时,我的字符串从div更改为openFbFriend,带有加号或小号1。怎么会这样呢?fb-id永远不会转换为数字,而始终是字符串。因此,如果我在div后输入console。log,则id是正确的。但是当点击时,奇怪的事情发生了,因为如果fbid>=17位数,那么在openFbFriend中它是+-1。任何帮助都很感激:)!

也许你应该试试

"<div onclick='openFbFriend('"" + friendsArray[i]['facebookID'] + "'");' class='row'>";

,因为如果参数周围没有'",那么它将被解释为整数,或者如果它包含非数字字符,那么它将导致错误。

结果字符串将是:

<div onclick='openFbFriend("10204840506352732");' class='row'>

但是在你的版本中:

<div onclick='openFbFriend(10204840506352732);' class='row'>

现在我有一个快速的自己的猜测和修复它与

    '"

    "<div onclick='openFbFriend('"" + friendsArray[i]['facebookID'] + "'");' class='row'>"

我假设它被转换成一个没有'"的数字,但我不明白为什么。也许有人能解释一下?Thx