jQuery不会更改DOM href

时间:2019-05-04 11:33:25

标签: javascript jquery html

我想基于某种语言按钮选择器动态更改此图片的href:

jQuery(document).ready(function($) {
            var shownLang = Cookies.get('site_lang');
            if (shownLang == 'de') {
            $(".meranoiden").prop("href", "https://www.youtube.com/");
            // document.getElementById("meranoiden").setAttribute("href", "https://www.youtube.com/");
            console.log("enters here");
            console.log($('.meranoiden').prop('href'));
            }
        });
<div class="meranologoen">
                    <div lang = "en" class="ui centered grid ">
                        <a class ="meranoiden"  lang = "en" href="https://www.facebook.com/" target="_blank"> <img class="merano-logo" src="assets/imgextra/logo/merano.png"> </a>
                    </div>
                </div>

由于某些未知原因,如果调用if语句,DOM不会将我的youtube链接替换为facebook。

但是在控制台中,当我要检查console.log时,我可以清楚地看到:

enters here 

https://www.youtube.com/

但是当我检查图片时,href上仍然会有旧的Facebook URL。

我尝试过:

document.getElementById("meranoiden").setAttribute("href", "https://www.youtube.com/");

$(".meranoiden").attr("href", "https://www.youtube.com/");

相同的行为,href不会改变的原因可能是什么?

2 个答案:

答案 0 :(得分:1)

您应该使用attr而不是prop

jQuery(document).ready(function($) {
  var shownLang = Cookies.get('site_lang');
  if (shownLang == 'de') {
    $(".meranoiden").attr("href", "https://www.youtube.com/");
    console.log($('.meranoiden').attr('href'));
  }
});

答案 1 :(得分:1)

请检查您的代码:

  1. 首先检查您的Cookies.get()函数。
  2. 检查您的条件(如果)声明

因为我删除了条件(if)语句,所以您的代码正确无误,并且运行正常。因此,请仔细检查并重试。