2016-11-10 1 views
2

Я застрял около 4 часов и искал эту небольшую часть кода, чтобы соответствовать моему classname.jQuery имя класса с любым номером между

Моя кодовая страница заполнена classnames как этот «вариант-274-82»

Моя функция JQuery в какой-то момент пытаются соответствовать любой DIV, чтобы показать и должно быть что-то вроде этого:

"опцию-" + ANYNUMBER + "-" + ID

jQuery('.option-274-'+id+' dd').fadeIn(); 

"274" это просто контрольное значение и должно быть регулярное выражение, как я понимаю.

Большое спасибо за чтение моего вопроса.

+0

Вы можете разместить также ваш html? –

+0

'$ ('. Option-' + num + '-' + id) .fadeIn()'? –

+0

Если вы пытаетесь совместить контрольное значение, то вроде этого '$ ('[class * =" option-' + controlVal + '- "]'). FadeIn();' Не совсем понятно, какой номер вы пытаясь сопоставить – Ronnie

ответ

0

Использование атрибута заканчивается селектором

jQuery("[class$="+id+"] dd", document.querySelectorAll(".option")) 
4

Использования filter(), вы можете вернуть все div соответствие регулярного выражения ^option-\d+-\d+$.

$('div') 
 
    .filter(function() { 
 
     return this.className.match(/^option-\d+-\d+$/); 
 
    }) 
 
    .fadeIn(2000);
.option-1-2, .option-1-a { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: #555; 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="option-1-2"></div> 
 
<div class="option-1-a"></div>

0

Вы можете использовать селектор «начать с» из JQuery и может использовать фильтр, чтобы найти правильный идентификатор

var element = $("[class^='option-'] ").filter(funtion(){ 
    return $(this).attr("class").match(new RegExp("option-\d*-" + id)) ; 
})[0]; 

Я надеюсь помочь вам

Смежные вопросы