Как изменить ссылки HREFS через javascript

#javascript

#javascript

Вопрос:

У меня есть форма, в которой пользователь вводит URL. Значение, полученное в результате этого ввода после его небольшой настройки, является переменной #url, которая сразу отображается пользователю.

Мне нужно, чтобы кнопки «Мне нравится» и «твитнуть» на моем сайте указывали на этот URL. Сделать их HREFS равными переменной #url

Это кнопки общего доступа:

 <a id="twtbutton" href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="theclocktwt">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>

<fb:like id="fbbutton" send="false" layout="button_count" width="450" show_faces="false" font="" style="position: absolute; left:110px;"></fb:like>
</div>
  

Здесь вы можете увидеть, как это работает:http://www.chusmix.com/tests/magic.html

То, что отображается как «Улучшенная ссылка», — это URL, который я хочу использовать для кнопок общего доступа.

Комментарии:

1. В вашем вопросе не хватает многих деталей. Для чего нужно нажать клавишу? Чего вы пытаетесь достичь? Черт возьми, что это cleanURL() ?

Ответ №1:

Это то, что вы хотите сделать —

 var yourElement = document.getElementById('yourHref');
 yourElement.setAttribute('href', '#url');
  

Комментарии:

1. -1 / 2 (округлено в меньшую сторону до 0). У него, очевидно, есть jQuery, поэтому используйте jQuery.

2. Имеет ли значение, есть ли у него jquery? Ответ работает, и в вопросе не сказано «используя jquery».

3. Пробовал это, и похоже, что это работает, но только в отладчике (Firefox). Не имеет значения, где я размещаю или вызываю скрипт, обновление не отражается в браузере. Итак, в отладчике я вижу обновленную ссылку, но отображаемая ссылка по-прежнему старая. Такое же поведение в IE, и оба они обновлены.

4. Спасибо, хотя я не знаю, почему вы вместо этого не сделали просто «document.getElementById(‘yourHref’).setAttribute(‘href’, ‘#url’);»

5. Я полагаю, что улучшенная разборчивость.

Ответ №2:

Обратитесь к следующей странице на сайте jquery:

http://api.jquery.com/attr/

Должна быть возможность использовать attr(‘href’, ‘value);

Комментарии:

1. @Liso22 Код будет выглядеть $("a").attr("href","http://example.com"); очевидно example.com это новый URL, которым вы хотите заменить старый.

Ответ №3:

попробуйте это:

 $("#url").keypress(
    function(e) {
        if(e.keyCode == 13) {
            $("#output").attr('href', cleanURL($("#url").val()));
        }
    }
);
  

Комментарии:

1. Я только что попробовал это в jsfiddle, и это каким-то образом изменяет строку гиперссылки вместо URL, на который она указывает jsfiddle.net/Lisandro/LGwws/1

Ответ №4:

     $('#twtbutton').prop('href', #url);
    $('#fbbutton').prop('href', #url);
  

Это изменило бы свойство ‘href’ html-элемента (ов) с id = twtbutton и id=fbbutton на значение, хранящееся в #url, где значение, хранящееся в #url, является строковым типом данных. В этом ответе используется библиотека jQuery.

Комментарии:

1. Не могли бы вы дать некоторое объяснение этому ответу? 😀

2. Конечно, я наткнулся на эту тему, ища пример того, как изменить значение свойства ‘href’ для данного html-элемента на новое значение. Текущий ответ с самым высоким рейтингом не совсем сработал для меня, но когда я изменил свой код (используя jQuery, конечно) к показанному выше, у меня это сработало. Итак, я хотел предложить этот фрагмент на случай, если у кого-то еще возникнут проблемы с другими ранжированными ответами, как у меня.