在页面加载时将字符串添加到url(javascript / jquery)

时间:2015-08-26 13:35:15

标签: jquery html

为了营销目的,我希望在页面加载时为特定div中的所有网址添加一个字符串,但是我的代码似乎并没有令人遗憾地工作:

$(document).ready(function() {
var trail = '?cid=marketing-string';
$("#sample-div").find('a').attr('href') + trail;
});

期望的结果将转向:

<div id="sample-div">
  <a href="http://www.example.com">
</div>

<div id="sample-div">
  <a href="http://www.example.com?cid=marketing-string">
</div>

4 个答案:

答案 0 :(得分:1)

如果要设置属性值,则必须将值作为attrib()函数中的第二个参数传递。

.attr( attributeName, value )

请考虑以下事项:

var trail = '?cid=marketing-string';
$("#sample-div").find('a').attr('href', $("#sample-div").find('a').attr('href') + trail);

以上代码相当于:

var trail = '?cid=marketing-string';
var url = $("#sample-div").find('a').attr('href');
$("#sample-div").find('a').attr('href', url + trail);

DEMO

答案 1 :(得分:1)

您可以使用attr-attributeName-function执行此操作:

$("#sample-div").find('a').attr('href', function(i, val){
    return val + trail;
});

您的代码问题是您正确地获得了

的href
$("#sample-div").find('a').attr('href');

然后正确地将trail连接到它,但之后你没有将它设置在任何地方。那么,这就是为什么你的代码无法正常工作的原因。

FIDDLE DEMO

答案 2 :(得分:1)

您可以轻松更改选择器以收集整个页面中的任何链接,并通过此附加文本

$(document).ready(function () {
  $('#sample-div a').each(function () {
      this.href += '?cid=marketing-string';
  })
});

http://jsfiddle.net/v5w27yso/

答案 3 :(得分:0)

查看 fiddle

以下是摘录。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sample-div">
  <a href="http://www.example.com" >Link</a>
</div>
    private void SetText(string text)
        {
                using (Form2 frm = new Form2(text, serialPort1))
                {
                        frm.ShowDialog();
                }
                serialPort1.DiscardInBuffer();
        }