2016-08-22 40 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。但是,我的贊成只是因爲你在幫助別人;)見你! –