如何通过选择类来使用jquery更改锚标记

时间:2015-07-07 22:57:12

标签: javascript jquery html

我知道这可能看起来很简单,但我很难找到一种方法来选择课程并改变只有href ..这里是html ......

<a href="http://www.something" class="theclassname">LEARN MORE</a>
到目前为止,使用javascript ...

$('.theclassname').click(function(){
    (change the href to www.awesome.com)
});

到目前为止,我真的非常感谢alll的答案...我需要更改href,但不要转到它已更改为的URL,直到用户再次点击为止...到目前为止,实际的代码是...

$('.hrefclass').click(function () {
    e.preventDefault();
    $(this).attr("href", "http://www.google.org/");
    $('.kwicks').kwicks({
        maxSize: '100%',
        behavior: 'menu'
    });
});

然而这似乎不起作用。

最新

好的,所以添加return false确实有效,但也阻止kiwcks函数运行...我怎么能绕过这个?

$('.hrefclassname').one("click", function() {
$('.kwicks').kwicks({
maxSize: '100%',
behavior: 'menu'
    });
    $(this).attr("href", "http://www.gooogle.org/");
return false;
});

最新的

$('.HREFCLASSNAME').one("click", function() {
 e.preventDefault();
    $(this).attr("href", "http://www.GOOGLE.org/");
$('.kwicks').kwicks({
maxSize: '100%',
behavior: 'menu'
    });

});

6 个答案:

答案 0 :(得分:4)

您可以使用jQuery的attr()方法来更改链接。 href是此处的属性,链接是其值。

&#13;
&#13;
$('.theclassname').on('click', function() {
  $(this).attr('href', 'http://google.com');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="http://www.something" class="theclassname">LEARN MORE</a>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

在您的函数中,变量“this”包含您单击的DOM元素。使用“$(this)”使用jQuery包装它,然后调用jQuery的attr functionhref属性设置为您想要的任何URL。

这是一个有效的jsFiddle:https://jsfiddle.net/57foqwaq/2/

以下是示例代码:

$('.theclassname').one("click", function(e) {
    e.preventDefault();
    $(this).attr("href", "https://www.example.com/");
});

答案 2 :(得分:2)

使用

$(this).attr('href','www.awesome.com')

答案 3 :(得分:1)

以下代码(正如其他人所提到的)应该有效:

// notice "e" being passed to the function:
$('.HREFCLASSNAME').one("click", function(e) {

    e.preventDefault();

    // assuming "this" is an "<a>" tag: 
    $(this).attr("href", "http://www.GOOGLE.org/");
    $('.kwicks').kwicks({
         maxSize: '100%',
         behavior: 'menu'
    });
});

这应该会停止“事件传播”,换句话说,链接不应该触发。

如果此链接仍在触发,则可能存在类似于this example的问题,其中事件“冒泡”并导致链接无论如何都会触发。 如果这种情况(表示您没有为特定问题提供有效的html示例),您可以通过将e.preventDefault()替换为此来阻止事件传播:< / p>

e.stopImmediatePropagation(); 

答案 4 :(得分:0)

如果您希望在点击链接时调用theclassname链接,然后显示链接的文本和网址,则可以尝试使用其他选项:

HTML

<a rel='1' class="theclassname" href="option1.html">Option 1</a>
<a rel='2' class="theclassname" href="option2.html">Option 2</a>

的jQuery

$('.theclassname').one('click', function() {
   var link = $(this);
   alert (link.html());
   alert (link.attr('href'));
   alert (link.attr('rel'));

   return false;
});

返回false会阻止链接被跟踪。

答案 5 :(得分:-1)

你只需要尝试:

$(this).attr("href", new_href);

我觉得它可能适合你。