在js脚本里面我试图识别某些元素上是否存在data-val-。
var attrExist = $('#myElem').find('[data-val-required]');
if (attrExist.length > 0){
// todo
}
但这不起作用,因为我总是在控制台attrExist中作为Object []。
如何测试data-val-required attr是否存在?
更新: 渲染的html看起来像
<select id="myElem" class="multiselect form-control" name="someName"
multiple="multiple" data-val-required="This field is required."
data-val="true" style="display: none;">
答案 0 :(得分:1)
你可以,
if ($('#myElem[data-val-required]').length > 0)
您的代码将检查具有data-val-required
属性
答案 1 :(得分:1)
代码中的问题是,如果存在具有(?!(?:.*? ){3,})
属性的元素,则find()
函数在 #myElem
内看。
因此,如果您想检查data-val-required
是否具有属性#myElem
,请使用:
data-val-required
作为替代方案,您可以查看是否有任何元素同时具有id和属性(通过using,id和attribute selector)。使用类时,此解决方案最有意义。
var dataAttr = $('#myElem').data('val-required');
//var dataAttr = $('#myElem').attr('data-val-required'); // alternative
if (typeof dataAttr !== typeof undefined && dataAttr !== false) {
// attribute is set
}