2016-08-22 66 views
-1

我在我的Jquery脚本上搜索解决方案。我需要在我的data-x上创建一个indexOf。jquery indexOf on data-x

我有一个由几个数字组成的字符串,用','隔开。

我有一个数字,我想检查这个数字是否与字符串中的一个数字相等。

$('[data-showfor="'+answer_id+'"]').hide().removeClass('enquetehidden').fadeIn(); 

我尝试过使用if语句。

if(($(this).val().indexOf(answer_id) > -1) 

HTML

<div class="enqueteitem enquetehidden" data-showfor="<?php echo $enquete['depend_answer_ids']; ?>"> 
+0

能否请您也表明你的HTML部分? – Vinie

回答

1

可以使用contains selector*可让您在属性data-showfor中搜索answer_id的任何存在。

var elements = $('[data-showfor*="' + answer_id + '"]'); 

正如评论注意到@MarcosPérezGude,用于搜索一个更安全的解决办法是用逗号,没有那么分开吧,转而使用空格。然后你可以使用jQuery ~字选择器。如果您搜索110,并且列表中已有诸如1100之类的东西,则这将更安全。那么这场比赛就会是假的。

更改HTML到:

<div class="enqueteitem enquetehidden" data-showfor="111 222 333"> 

,并使用~选择:

var elements = $('[data-showfor~="' + answer_id + '"]'); 
+0

如果有110值,那么它会搜索1?这将是一个误报。这是一个糟糕的解决方案。 –

+0

同意,但我认为使用列表时更好,而不是逗号分隔。这是OP的问题,而不是你的问题。我指的是'和选择器'[data-showfor〜=''+ answer_id +'“]'。通过这种方式,它将被允许从该列表中选择一个项目。 –

+0

一切都很好,我只是告诉一个建议,但OP需要改变他的html。但是,我的赞成只是因为你在帮助别人;)见你! –