【问题标题】:Changing href depending on javascript根据javascript更改href
【发布时间】:2017-09-01 15:06:12
【问题描述】:

我正在尝试找出确定href 的最佳方法,具体取决于是否启用了javascript。如果启用了 javascript,我想要 `href="#"'

<ul>
    <li onclick="openLandscape()"><a class="small-caps bold icon-tree" href="#"><span class="sticky">Landscaping</span></a></li>
    <li onclick="openEdible()"><a class="small-caps bold icon-apple" href="#"><span class="sticky">Edible Accents</span></a></li>
    <li onclick="openPests()">8<a class="small-caps bold icon-android" href="#"><span class="sticky">Pests</span></a></li>
    <li onclick="openProducts()"><a class="small-caps bold icon-shopping-cart" href="#"><span class="sticky">Products</span></a></li>
</ul>

如果未启用 javascript,我希望 href 如下所示:

<ul>
    <li onclick="openLandscape()"><a class="small-caps bold icon-tree" href="#landscaping"><span class="sticky">Landscaping</span></a></li>
    <li onclick="openEdible()"><a class="small-caps bold icon-apple" href="#edible"><span class="sticky">Edible Accents</span></a></li>
    <li onclick="openPests()">8<a class="small-caps bold icon-android" href="#pests"><span class="sticky">Pests</span></a></li>
    <li onclick="openProducts()"><a class="small-caps bold icon-shopping-cart" href="#products"><span class="sticky">Products</span></a></li>
</ul>

想法会很棒。谢谢。

【问题讨论】:

    标签: javascript href setattribute createelement


    【解决方案1】:

    真的很简单,你可以这样做:

    <script>
      (function(d){
        d.write("<ul>");
        d.write("<li onclick=\"openLandscape()\"><a class=\"small-caps bold icon-tree\" href=\"#\"><span class=\"sticky\">Landscaping</span></a></li>");
        d.write("<li onclick=\"openEdible()\"><a class=\"small-caps bold icon-apple\" href=\"#\"><span class=\"sticky\">Edible Accents</span></a></li>");
        d.write("<li onclick=\"openPests()\"><a class=\"small-caps bold icon-android\" href=\"#\"><span class=\"sticky\">Pests</span></a></li>");
        d.write("<li onclick=\"openProducts()\"><a class=\"small-caps bold icon-shopping-cart\" href=\"#\"><span class=\"sticky\">Products</span></a></li>");
        d.write("</ul>");
      })(window.document);
    </script>
    
    <noscript>
    <ul>
        <li onclick="openLandscape()"><a class="small-caps bold icon-tree" href="#landscaping"><span class="sticky">Landscaping</span></a></li>
        <li onclick="openEdible()"><a class="small-caps bold icon-apple" href="#edible"><span class="sticky">Edible Accents</span></a></li>
        <li onclick="openPests()"><a class="small-caps bold icon-android" href="#pests"><span class="sticky">Pests</span></a></li>
        <li onclick="openProducts()"><a class="small-caps bold icon-shopping-cart" href="#products"><span class="sticky">Products</span></a></li>
    </ul>
    </noscript>

    【讨论】:

      【解决方案2】:

      你可以做的是使用javascript动态更新href。

      这里是代码

      <ul>
          <li onclick="openLandscape()"><a class="small-caps bold icon-tree" href="#landscaping"><span class="sticky">Landscaping</span></a></li>
          <li onclick="openEdible()"><a class="small-caps bold icon-apple" href="#edible"><span class="sticky">Edible Accents</span></a></li>
          <li onclick="openPests()">8<a class="small-caps bold icon-android" href="#pests"><span class="sticky">Pests</span></a></li>
          <li onclick="openProducts()"><a class="small-caps bold icon-shopping-cart" href="#products"><span class="sticky">Products</span></a></li>
      </ul>
      
      //this script will run only if javascript is enabled
      <script>
          //iterate over all the li elements
          var liArray=document.document.querySelectorAll("#sliderMenu li");
          for(var i=0;i<liArray.length;i++){
              var li=liArray[i];
              //set the href of all to #
              li.setAttribute('href',"#");
          }
      </script>
      

      【讨论】:

      • 我在页面上有其他列表。如果我添加 &lt;ul id="sliderMenu"&gt; 我如何编辑 javascript 以获取该组?
      • 您可以使用 document.querySelectorAll("#sliderMenu li") 而不是 getElementByTagName('li')。我也更新了我的解决方案
      猜你喜欢
      • 2016-01-09
      • 2011-05-30
      • 2015-03-13
      • 2019-01-30
      • 2015-10-04
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多