【问题标题】:How can I iterate through lists and return the URL if a class inside the list contains a certain string?如果列表中的类包含某个字符串,我如何遍历列表并返回 URL?
【发布时间】:2017-05-25 14:19:44
【问题描述】:

我目前是 JQuery 的新手,我正在 JSFiddle 中摆弄,希望能够磨练我的技能来开发我心中的网络应用程序。

我要满足的一个要求是遍历页面上的列表,如果某个类包含我要查找的字符串,则返回该列表中另一个类的 URL。完成后,它将迭代到下一个列表项。

$('.listItems li').each(function() {
if ('.spanClass' == 'True') {
    var hrefValue = $('.aClass').attr('href');
    alert (hrefValue);
}
})
<li class="listItems">
  <a class="aClass" href="/home">
   <span class="spanClass">True</span>
 </a>
</li>
<li class="listItems">
 <a class="aClass" href="/town">
   <span class="spanClass">False</span>
 </a>
</li>
<li class="listItems">
  <a class="aClass" href="/home">
    <span class="spanClass">True</span>
  </a>
</li>

理论上,如果 span 类 spanClass 包含“True”,我希望我的代码会提醒我 URL。

如果类包含特定字符串,我如何修复我的代码以便能够获取 URL?

【问题讨论】:

    标签: javascript jquery html-lists each


    【解决方案1】:

    var href = $('li.listItems .spanClass:contains(True)').map(function() {
      
    
      return $(this).parent('a').attr('href')
    }).get();
    
    console.log(href)
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <ul>
      <li class="listItems">
        <a class="aClass" href="/home">
          <span class="spanClass">True</span>
        </a>
      </li>
      <li class="listItems">
        <a class="aClass" href="/town">
          <span class="spanClass">False</span>
        </a>
      </li>
      <li class="listItems">
        <a class="aClass" href="/home">
          <span class="spanClass">True</span>
        </a>
      </li>
    </ul>
    1. 使用.map()获取href并放入数组中

    【讨论】:

    • 哇,太棒了。非常感谢!
    • @juiceb0xk 很高兴帮助 mate 快乐编码
    • 为什么我可以通过 JSFiddle 上的 CTRL+ENTER 执行此操作,但是当我将代码输入 Chrome 的控制台时,显示的只是一个“[]”。当我在 JSFiddle 中执行代码时,返回的是数组,但不是在 chrome 中?
    • 这种情况可能有问题:contains(True)你的span有True文本?你使用相同的html标记吗?
    • 都一样,只是我返回的是undefined,而在JSFiddle中执行代码返回的是数组,里面有值。
    【解决方案2】:

    希望对您有所帮助:

    //HTML
    <ul class="listItems">
        <li>
          <a class="aClass" href="/home">
           <span class="spanClass">True</span>
         </a>
        </li>
        <li>
         <a class="aClass" href="/town">
           <span class="spanClass">False</span>
         </a>
        </li>
        <li>
          <a class="aClass" href="/home">
            <span class="spanClass">True</span>
          </a>
        </li>
        </ul>
    
    
    
    //JS
    
        $('.listItems li').each(function(idx) {
        if($(this).find('.spanClass').html() == 'True')
        {
                var hrefValue = $('.aClass').attr('href');
            alert (hrefValue);
        }
        })
    

    【讨论】:

      猜你喜欢
      • 2020-06-17
      • 2016-08-21
      • 2021-02-11
      • 2018-12-23
      • 2018-06-11
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多