jquery Cheerio -如何获得所有具有相同属性的元素的值,而不是内容/文本?[duplicate]

im9ewurl  于 2023-03-01  发布在  jQuery
关注(0)|答案(1)|浏览(167)
    • 此问题在此处已有答案**:

Cheerio - Find and print all attributes that match query(2个答案)
7天前关闭。
我试图得到的不是具有特定属性的元素的内容,而是属性值!
当我执行以下操作时:

const time =  $item.find('div').find('p').find('time')
time.attr('datetime')

我只得到1个值,而不是所有具有相同属性的值。
如果我这样做:

$item.find('div').find('p').find('time').text()

我得到了所有具有相同属性的内容,但是,我不想要文本,只想要属性的值。
html结构如下所示:

<div id="main">
   <div class="layout-stack">
      <ul>
        <li> 
            <ul>
               <li>
                 <div></div>
                 <div>
                   <div></div>
                   <p></p>
                   <p>
                       <time dateTime="2022-11-09T07:18:05.000Z"> //thats what I want
                         "09.11.2022, 08:18" //that I dont want
                         "&nbsp;"
                         "Uhr"
                       </time>
                   </p>
                 </div>
               </li>
               <li></li>
               <li></li>
               ...
           </ul>
        </li>
      </ul>
   </div>
</div>

我的代码通常会获取ul列表中的所有项(对于其他元素),但我无法获取属性值

...
 $('#main .layout-stack > ul > li > ul')
            .map((_, item) => {
                const $item = $(item);
                //here I access the elements 
             return {}
            }).toArray()
...
du7egjpx

du7egjpx1#

试试这个:

const times = $('#main time').map((_, time) => $(time).attr('datetime')).get();
console.log(times);

相关问题