Cheerio JS 我可以检查一个属性是否包含在我已经在 cheerio JS 中选择的元素中吗
Cheerio JS Can I check if an attribute is included in an element I already selected in cheerio JS
我想知道是否可以在定位元素后检查它是否具有某个属性,如果它具有该属性,请避开它并获得一个新的。
这是我正在使用的html:
<option
value="19438389624960">
1
</option>
<option
disabled="disabled"
value="19438389657728">
2
</option>
<option
value="19438389690496">
3
</option>
<option
disabled="disabled"
value="19438389723264">
4
</option>
如您所见,4 个选项中有 2 个具有我想避免的 disabled="disabled"
属性,无论如何我可以做到吗?
我目前有这段代码可以从所有选项中选择一个随机值:
var list = [];
$('select[name=id]').find('option').each(function (index, element) {
list.push($(element).attr('value'));
});
const randomVar = list[Math.random() * list.length | 0]
variant = randomVar
但此代码仍会选择具有 disabled="disabled"
属性的代码
你可以使用这个:
$('select[name=id]').find('option[disabled!="disabled"]').each(...)
跳过具有 disabled=disabled
的选项。然后,您将从 non-disabled 项中随机挑选一项。由于 cheerio 使用与 jQuery 相同的选择器引擎,您可以在 jQuery doc.
的相关页面中找到此类内容
:not
是一个常规的 css 伪,这意味着它在任何地方都有效:
$('option:not([disabled="disabled"])')
或者可能只是:
$('option:not([disabled])')
我想知道是否可以在定位元素后检查它是否具有某个属性,如果它具有该属性,请避开它并获得一个新的。
这是我正在使用的html:
<option
value="19438389624960">
1
</option>
<option
disabled="disabled"
value="19438389657728">
2
</option>
<option
value="19438389690496">
3
</option>
<option
disabled="disabled"
value="19438389723264">
4
</option>
如您所见,4 个选项中有 2 个具有我想避免的 disabled="disabled"
属性,无论如何我可以做到吗?
我目前有这段代码可以从所有选项中选择一个随机值:
var list = [];
$('select[name=id]').find('option').each(function (index, element) {
list.push($(element).attr('value'));
});
const randomVar = list[Math.random() * list.length | 0]
variant = randomVar
但此代码仍会选择具有 disabled="disabled"
属性的代码
你可以使用这个:
$('select[name=id]').find('option[disabled!="disabled"]').each(...)
跳过具有 disabled=disabled
的选项。然后,您将从 non-disabled 项中随机挑选一项。由于 cheerio 使用与 jQuery 相同的选择器引擎,您可以在 jQuery doc.
:not
是一个常规的 css 伪,这意味着它在任何地方都有效:
$('option:not([disabled="disabled"])')
或者可能只是:
$('option:not([disabled])')