jquery - 如何使用jQuery检查数据属性是否存在选择标签选项
问题描述
所以我希望能够检查选择标签选项是否存在。但我希望能够使用数据属性。我已经尝试了所有我能找到的东西,但没有运气。这是我的代码:
if ($("#first-select option[data-id='G']").length > 0) {
//set the option to "selected"
}
此外,完成此操作后,我希望能够将该选项标签设置为选中。我在这里想念什么?我也试过attr('data-id')
了.data("id")
。没运气。
为了测试,如果上面的陈述是真的,我使用控制台日志来发布一个真实的,但它总是给我错误的。
编辑:我真正想做的是在 ajax 成功执行时执行代码。所以这是我目前拥有的ajax代码:
success: function(data) {
$("#name").val(data.title);
var sEl = $("#first-select option[data-id='G']");
if (sEl.length > 0) {
sEl.attr("selected", true);
}
else {
console.log('doesnt exist!');
}
}
HTML:
<select name="rating" id="first-select">
<option value="2" data-id="PG3">PG3</option>
<option value="3" data-id="PG-13">PG-13</option>
<option value="4" data-id="R">R</option>
<option value="1" data-id="G">G</option>
<option value="5" data-id="NC-17">NC-17</option>
</select>
问题是我将data.rated
用来获取额定值(可能是 PG、PG-13、R 等),如果额定值存在于我已经拥有的选择中,则给它选择属性。
这似乎仍然不起作用。它曾经工作过,现在似乎不起作用。
解决方案
似乎您只是想选择data-id
与数据集中返回的评级相匹配的选项。似乎您只需要这样的东西(数据变量只是作为从您的 ajax 请求返回的数据的占位符)。
const data = {title: 'A movie', rated: 'G'}
$('#first-select [data-id="' + data.rated + '"]').prop('selected', true);
<select name="rating" id="first-select">
<option value="2" data-id="PG3">PG3</option>
<option value="3" data-id="PG-13">PG-13</option>
<option value="4" data-id="R">R</option>
<option value="1" data-id="G">G</option>
<option value="5" data-id="NC-17">NC-17</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如何处理多选的示例:
const data = {title: 'A movie', rated: 'G,PG3,PG-13'}
const ratings = data.rated.split(',');
$.each(ratings, (index, rating) => {
$('#first-select [data-id="' + rating + '"]').prop('selected', true);
});
<select name="rating" id="first-select" multiple>
<option value="2" data-id="PG3">PG3</option>
<option value="3" data-id="PG-13">PG-13</option>
<option value="4" data-id="R">R</option>
<option value="1" data-id="G">G</option>
<option value="5" data-id="NC-17">NC-17</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
推荐阅读
- eclipse - Eclipse Photon 和 Ubuntu 18.04 - DLTK 索引不起作用
- mysql - Magento MySql: ERROR 1005 (HY000) at line 1003: Can't create table 'magento.xxxxxx' (errno: -1)
- python - 无法在 jupyter 中导入名称 cbook
- xml - 如何使用 XmlSlurper 将所有子标签作为列表获取
- json - 如何使用 jq 从 json 对象中修剪子对象?
- c - c中声明和定义的内存分配
- reactjs - 在鼠标悬停时更改内联颜色(React)
- c - 在鼠标事件上重新启动无限循环?
- complex-event-processing - Esper EPL 中的计数和时间窗口
- amazon-web-services - 如何在 AWS 上永久运行 artisan 服务器