【问题标题】:why is my string no string anymore after give it to a function?为什么我的字符串在给函数后不再是字符串?
【发布时间】:2013-05-10 16:01:58
【问题描述】:

已解决:阅读下面的编辑

首先我创建一个这样的字符串:

var child_id = "childId"+this.id;
alert(child_id);

警报显示正确的字符串。 this.id 是一个字符串,我还创建了一个临时变量并将其再次放入字符串 (var tmp_child_id = child_id.toString()) 以确保它是一个字符串。

在此之后,我将这个字符串提供给函数 goToNextNode,并带有这样的 href 链接:

this.svgImageDiv.innerHTML = '<a href="javascript:goToNextNode('+child_id+')"><img src="img/transparent.png"/></a>

在 goToNextNode 函数中,我首先触发了一个警报,它没有像上面的警报那样显示字符串,它显示“[Object HTMLDivElement]”。

function goToNextNode(childId){
   alert(childId);
}

我的字符串发生了什么事?如何正确传输字符串?

编辑: 解决了: 当我做 var child_id = this.id;而不是 var child_id = "childId"+this.id;并将“childId”字符串放入函数goToNextNode()中的id,一切正常。不要问我为什么会这样,我不明白......

结束编辑

【问题讨论】:

  • 您到底在提醒什么? this.id 也是字符串吗?
  • 你能展示你的 goToNextNode() 吗?
  • @remyabel,是的,我也将它再次放入带有 tmp 变量的字符串中,如上所示,我编辑了我的帖子并将 goToNextNode 函数放入我的帖子中
  • @DD59 当我写 alert(child_id) 我警告 var child_id 而不是我给函数的 childid ... child_id 变量的值变化很快,这就是我输入值的原因进入 href 链接。
  • 尝试console.log(childId)检查浏览器控制台中的值

标签: javascript html string href


【解决方案1】:

您忘记了括号内参数的引号:

this.svgImageDiv.innerHTML = '<a href="javascript:goToNextNode(`'+child_id+'`)"><img src="img/transparent.png"/></a>';

【讨论】:

  • 嗯,但它不像你写的那样工作,如果我这样写它也不起作用,因为它从头开始关闭 javascript 引用:this.svgImageDiv.innerHTML = '&lt;a href="javascript:goToNextNode('+'"'+child_id+'"'+')"&gt;&lt;img src="img/transparent.png"/&gt;&lt;/a&gt;';
  • 您在括号内添加的第一个 '"' 将是 href 属性值的结尾。您可以使用转义的高逗号:this.svgImageDiv.innerHTML = '&lt;a href="javascript:goToNextNode(\''+child_id+'\')"&gt;&lt;img src="img/transparent.png"/&gt;&lt;/a&gt;';
猜你喜欢
  • 2020-01-20
  • 2014-11-20
  • 1970-01-01
  • 2023-03-16
  • 2020-09-25
  • 2020-01-10
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多