问题描述
此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')