将变量传递给onClick函数

时间:2018-03-08 17:54:57

标签: javascript html pug

尝试在新标签页中打开图片时,值来自循环对象。 我如何将doc.strDocument的值传递给onClick?

PUG:

a(onClick="window.open('/userImages/documents/'+doc.strDocument);")

HTML:

<a onClick="window.open('/userImages/documents/'+doc.strDocument);"></a>

2 个答案:

答案 0 :(得分:1)

您的连接正常(只要strDocument具有与静态文本连接时形成有效URL的值)。

但是,对于<a>元素来说,这更简单 - 不需要onclick,因为<a>元素可以使用target属性定位新窗口。

function getLink(){
  var someData = "foo";
  return "some/path/" + someData;
  console.log(link.href);
}
<a href="javascript:getLink()" target="_blank" id="testLink">test</a>

而且,即使这样做也应该通过将JavaScript与HTML内联移动来改进:

var someDynamicallyGottenValue = "foo";
var link = document.getElementById("dynamicLink");
link.href = 'http://someDomain.com/' + someDynamicallyGottenValue;
console.log(link.href);
<a href="" target="_blank" id="dynamicLink">test</a>

答案 1 :(得分:0)

您可以将JSON数据传递给Pug。

{"book": {"name": "Dracula"}}

你的PUG代码是,

a(onClick="window.open('/userImages/documents/#{book.name}');")
帕格也支持变量。

- var foo = book.name;
a(onClick="window.open('/userImages/documents/#{foo}');")

使用 - http://naltatis.github.io/jade-syntax-docs/#variables

进行测试

希望这有帮助。