如何使用Cheerio JS打印属性的第三个实例

问题描述

此html中有3个“ authenticity_token”实例:

<form class="edit_checkout" action="/942252/checkouts/624527ae778897e534d917b52af2eb28" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="patch" /><input type="hidden" name="authenticity_token" value="5vK3h2ocwaKm0hZ+AH3HAtnffe9l7hQHIMDfrmpusFhxtSV6IbLBfWOnBboOBysF7NyDPQ7GNxdfcWUPOk5WSQ==" />

<form class="edit_checkout" action="/942252/checkouts/624527ae778897e534d917b52af2eb28" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="patch" /><input type="hidden" name="authenticity_token" value="Fkw7j/Wv0Xxhna1aWNh8FsZhNnXz4zu0vFuTV0q9WJ6BC6lyvgHRo6Tovp5WopAR82LIp5jLGKTD6in0sx2+jw==" />

<form class="edit_checkout" data-payment-form="" action="/942252/checkouts/624527ae778897e534d917b52af2eb28" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="patch" /><input type="hidden" name="authenticity_token" value="Bs1PNacx4rK5TJcl+VDO+RXnR69DixOH+osJ/yxuQQeRit3I7J/ibXw5hOH3KiL+IOS5fSijMJeFOrNc1c6nFg==" />

实际令牌(我想要的值)是value属性在这种情况下,我需要“ authenticity_token”的第三个实例。

所有3个实例均以<form class="edit_checkout"开头,但第三个实例后跟data-payment-form=""而不是action="/。所以我知道我想要的是包含data-payment-form

的那个

我尝试在Cheerio中使用此代码

$('form.edit_checkout input['name="authenticity_token"']')

但是这会在第一行返回第一个身份验证令牌,而我在第三行需要auth令牌。

谢谢!

解决方法

怎么样:

let input = $('[name="authenticity_token"]')[2]

然后获取值:

let value = $(input).attr('value')