首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery从类中的所有元素中获取属性和值。

jQuery从类中的所有元素中获取属性和值。
EN

Stack Overflow用户
提问于 2017-08-01 04:43:18
回答 2查看 52关注 0票数 1

我正在刮一个有以下HTML结构的网站

代码语言:javascript
运行
复制
<div id="list" class="book-list">
    <div id="stream_1" class="stream collapsed">
        <h3 id="s-1" rel="1"><div><a name="st_1" class="st st_1">Version 1</a></div></h3>
        <div class="volume last">
            <h4 id="v-1-1">Volume 1<span class="range">Chapter 1</span></h4>
            <ul class="chapter">
                <li id="b-922893" class="new">
                    <span>
                        <a class="ch sts sts_1" target="_blank" href="link/1">vol.1 ch.1</a>
                    </span>
                    <i>Yesterday 08:27 am</i>
                    <em>
                    <a href="link/1" target="_blank">1</a>
                    <a href="link/3-1" target="_blank">3</a>
                    <a href="link/6-1" target="_blank">6</a>
                    <a href="link/10-1" target="_blank">10</a>
                    <a href="link" target="_blank">all</a>
                    of 44                               </em>
                </li>
            </ul>
        </div>
    </div>
    <div id="stream_5" class="stream">
        <h3 id="s-5" rel="5"><div><a name="st_5" class="st st_5">Version 2</a></div></h3>
        <div class="volume last">
            <h4 id="v-5-">Volume <i>[Null]</i><span class="range">Chapter 1</span></h4>
            <ul class="chapter">
                <li id="b-922873" class="new">
                    <span>
                        <a class="ch sts sts_5" target="_blank" href="links5/c1/1">ch.1</a>
                    </span>
                    <i>Yesterday 08:10 am</i>
                    <em>
                    <a href="links5/c1/1" target="_blank">1</a>
                    <a href="links5/c1/3-1" target="_blank">3</a>
                    <a href="links5/c1/6-1" target="_blank">6</a>
                    <a href="links5/c1/10-1" target="_blank">10</a>
                    <a href="links5/c1" target="_blank">all</a>
                    of 44                               </em>
                </li>
            </ul>
        </div>
    </div>
</div>

我想使用jQuery从div获取链接,以获得如下内容

代码语言:javascript
运行
复制
{
 "vol.1 ch.1" : "link/1",
 "ch.2" : "link/2"
}

由于我想要的所有项目都有类ch sts,所以我想通过选择器获得它们,并且尝试使用each(),但是没有工作,因为它显示了节点.

以下是我所尝试的:

代码语言:javascript
运行
复制
$d('.ch').map(function(){
  console.log('This: href',$(this).attr("href"));
}).get();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-01 04:48:36

比你想象的要简单。由于您已经提到只需要解析ch sts类的链接,所以我更改了选择器。

代码语言:javascript
运行
复制
var map = {};

$(".ch.sts").each(function() {
  map[$(this).text()] = $(this).attr("href");
});

console.log(map);
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="list" class="book-list">
    <div id="stream_1" class="stream collapsed">
        <h3 id="s-1" rel="1"><div><a name="st_1" class="st st_1">Version 1</a></div></h3>
        <div class="volume last">
            <h4 id="v-1-1">Volume 1<span class="range">Chapter 1</span></h4>
            <ul class="chapter">
                <li id="b-922893" class="new">
                    <span>
                        <a class="ch sts sts_1" target="_blank" href="link/1">vol.1 ch.1</a>
                    </span>
                    <i>Yesterday 08:27 am</i>
                    <em>
                    <a href="link/1" target="_blank">1</a>
                    <a href="link/3-1" target="_blank">3</a>
                    <a href="link/6-1" target="_blank">6</a>
                    <a href="link/10-1" target="_blank">10</a>
                    <a href="link" target="_blank">all</a>
                    of 44                               </em>
                </li>
            </ul>
        </div>
    </div>
    <div id="stream_5" class="stream">
        <h3 id="s-5" rel="5"><div><a name="st_5" class="st st_5">Version 2</a></div></h3>
        <div class="volume last">
            <h4 id="v-5-">Volume <i>[Null]</i><span class="range">Chapter 1</span></h4>
            <ul class="chapter">
                <li id="b-922873" class="new">
                    <span>
                        <a class="ch sts sts_5" target="_blank" href="links5/c1/1">ch.1</a>
                    </span>
                    <i>Yesterday 08:10 am</i>
                    <em>
                    <a href="links5/c1/1" target="_blank">1</a>
                    <a href="links5/c1/3-1" target="_blank">3</a>
                    <a href="links5/c1/6-1" target="_blank">6</a>
                    <a href="links5/c1/10-1" target="_blank">10</a>
                    <a href="links5/c1" target="_blank">all</a>
                    of 44                               </em>
                </li>
            </ul>
        </div>
    </div>
</div>

票数 0
EN

Stack Overflow用户

发布于 2017-08-01 05:18:17

  1. 获取具有类名的所有元素。
  2. 获取文本值和"href“属性。
代码语言:javascript
运行
复制
x = document.getElementsByClassName("ch sts");
for(i =0; i<x.length; i++) {
    console.log(x[i].text +" "+ x[i].getAttribute("href"));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45429108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档