2016-05-30 61 views
0

里面的js脚本我试图识别是否存在某些元素的数据val-required。检查数据val要求是否存在

var attrExist = $('#myElem').find('[data-val-required]'); 
    if (attrExist.length > 0){ 
      // todo 
    } 

但这不起作用,因为我总是在控制台attrExist内部以Object []方式获取。

如何测试数据val所需的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

“id =”myElem“'是什么元素。它是否包含一个包含'data-val-required'属性的子元素(或者元素本身是否包含该属性)? –

回答

1

的问题在你的代码的子元素是find()功能看起来里面#myElem如果存在具有data-val-required属性的元素。

所以,如果你想检查是否#myElem具有属性data-val-required使用:

var dataAttr = $('#myElem').data('val-required'); 
//var dataAttr = $('#myElem').attr('data-val-required'); // alternative 
if (typeof dataAttr !== typeof undefined && dataAttr !== false) { 
    // attribute is set 
} 

作为替代方案,你可以看看,如果有同时具有id和属性的元素(通过使用ID和属性选择)。这个解决方案在使用类时最有意义。

if($('#myElem[data-val-required]').length > 0) { 
    // element with that attribute exists 
} 
1

你可以做,

if ($('#myElem[data-val-required]').length > 0) 

您的代码将检查具有data-val-required属性