كيفية تغيير href لعنصر <a> عند الضغط على الزر باستخدام جافاسكريبت


كيفية تغيير قيمة السمة href لوسم <a/> عبر Javascript عند النقر على زر؟

<script type="text/javascript">
  function f1()
  {
    document.getElementById("abc").href="xyz.php"; 
  }
</script>

<a href="" id="abc">jhg</a>
<a href="" id="" onclick="f1()">jhhghj</a>

الإجابة رقم 1

بدون وجود href، سيؤدي النقر إلى إعادة تحميل الصفحة الحالية، لذلك تحتاج إلى شيء كهذا:

<a href="#" onclick="f1()">jhhghj</a>

أو منع التمرير بهذه الطريقة:

<a href="#" onclick="f1(); return false;">jhhghj</a>

أو return false في دالتك f1 و:

<a href="#" onclick="return f1();">jhhghj</a>

....أو، الطريقة غير الملحوظة:

<a href="#" id="abc">jhg</a>
<a href="#" id="myLink">jhhghj</a>

<script type="text/javascript">
  document.getElementById("myLink").onclick = function() {
    document.getElementById("abc").href="xyz.php"; 
    return false;
  };
</script>

الإجابة رقم 2

بالضبط ما فعله نيك كارفر هناك لكن أعتقد أنه سيكون من الأفضل إذا استخدمنا طريقة setAttribute الخاصة بـ DOM.

<script type="text/javascript">
    document.getElementById("myLink").onclick = function() {
        var link = document.getElementById("abc");
        link.setAttribute("href", "xyz.php");
        return false;
    }
</script>

إنها سطر إضافي من الكود ولكن أجدها أفضل من حيث البنية.