1

我一直在尝试使用之前在同一函数中定义的变量来创建超链接以附加:

var NAMEVARIABLE = responseArray[i].Name;

var TITLE_Game = document.createElement("p");
TITLE_Game.className = "TITLE_Game";
TITLE_Game.innerHTML = "<a href='Game_NAMEVARIABLE.html'>Games</a>";

我使用此处找到的解决方案尝试了以下操作:将Javascript 变量传递给 <a href >

<a href="Game_.html" onclick="location.href=this.href+'?key='+NAMEVARIABLE;return false;">Games</a>

但这没有用。然后我尝试添加一个ID:

<a id="link" href="Game_.html?propid=">Games</a>

并将其添加到脚本中: document.links["link"].href += NAMEVARIABLE;

这也不起作用。这些链接发生在 Isotope 中,我遇到了新手问题,确保我的 JSON 数据在脚本执行之前加载。现在一切正常,但我不确定上述方法不起作用的原因是因为类似的问题,还是它们根本不是解决此问题的正确方法。

任何帮助深表感谢。谢谢

4

4 回答 4

1

首先,尝试调试您的变量:

var NAMEVARIABLE = responseArray[i].Name;
alert(NAMEVARIABLE);

它是否返回所需的返回值。然后第二件事,在你的第一种脚本风格中,试试这个:

TITLE_Game.innerHTML = "<a href='Game_"+NAMEVARIABLE+".html'>Games</a>";

我假设你有game_[number_id].html格式的(静态)html集合,如果是这样,你可以用你的第二种脚本风格进一步尝试,并将其更改为:

<a href="#" onclick="location.href='Game_'+NAMEVARIABLE+'.html';return false;">Games</a>

您需要进一步了解javascript 字符串连接

于 2013-01-11T03:22:25.250 回答
0

使用字符串连接来构建您的内部 html 字符串。

例子:

var nameVariable = 'Foo';
var innerHtmlText = nameVariable + 'bar'; 

$('#someElement').html(innerHtmlText);

someElement 的内容将包含以下文本: 'Foobar';

于 2013-01-11T03:21:51.507 回答
0

这可以通过任一(即纯JSjQuery)方式轻松实现。假设你有这个<a>元素href

<a id="Link" href="/collection/categories/">Games</a>

纯 JavaScript 方式:

window.onload = function() {
  var link= document.getElementById('Link'),
  url = link.href + responseArray[i].Name + '.html';

  link.setAttribute('href', url);
}

使用jQuery:

$(function(){
  var link= $('#Link'),
  url = link.attr('href') + responseArray[i].Name + '.html';

  link.attr('href', url);
}); 
于 2013-01-11T03:42:50.657 回答
0

你只需要字符串连接。在大多数现代浏览器中,修改链接的 href onclick 将被视为垃圾邮件。

<div id="result">
  the result: 
</div>
<script type="text/javascript">
var name = "foo_bar";
var url = "page.html?key=" + name; //or.. "page_" + name + ".html";
var link = '<a href="' + url +'">link here</a>';

$("#result").addClass("g_title");
$("#result").append(link);
</script>
于 2013-01-11T03:56:43.947 回答