我正在有效地尝试在这个问题中做同样的事情 Change #hash tag to link on page load 但我认为因为我从 jquery 对象数据标题属性中获取字符串,所以某些东西无法正常工作。我有一个这样的 DOM 元素
<a class="thumbnail" rel="gallery" data-caption="#drink from somewhere #fun" data-pid="36" href="http://domain.com/something"><img src="http://domain.com/somephoto.png" alt="acee7bd0d8339b9ddcf4a259ec7ddeec"></a>
它基本上是一个加载到模式中的缩略图然后我试图抓住属性标题并从任何哈希标签创建链接
var caption = anchor.attr('data-caption') ? anchor.attr('data-caption') : null;
console.log(caption);
其中变量anchor是代表链接的jquery对象
如果我检查它打印的日志,我可以看到有一个标题“#drink from某个地方#fun”
所以现在把它扔进正则表达式替换 fn
caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
然后将标题附加到 DOM 并激活链接。
但是标题字符串没有任何反应,我只是得到了我输入的同样的东西。
**编辑答案愚蠢的错误忘记将返回值分配给变量
var captionLinks = caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');