2013-11-23 5 views
-2

Я хочу проверить, содержит ли выбранный символ "color-" или "image-" и показывает соответствующее.Проверьте, содержит ли значение определенную строку

http://codepen.io/anon/pen/jkxoE

+0

Пожалуйста, напишите соответствующие примеры кода. Что вы подразумеваете под 'selected contains'? –

ответ

1

Я думаю, что вы Мента действительно проверить, если некоторые строка содержит данную подстроку. Вы можете сделать следующее:

childValue.indexOf('color-'); 

Если подстрока присутствует он возвращает индекс, где появилась эта подстрока, если не вернет -1.

0

Возможно, что-то вроде этого?

$(selectChild).on('change',function(){ 
    var childOption = $("option:selected", this); 

    if (childOption.is('[value^=color]')) { 
     //show pickColor div 
    } else if (childOption.is('[value^=image]')) { 
      //show Upload div 
    } 

}); 

http://api.jquery.com/attribute-starts-with-selector/

0

переключатель вы childValue и регулярное выражение

$(selectChild).on('change',function(){ 
    var childOption = $("option:selected", this), 
     childValue = this.value; 

    if(/color-/.test(childValue)){ 
     alert("color-"); 
     return; 
    } 
    if(/image-/.test(childValue)){ 
     alert("image-"); 
     return; 
    } 

}); 

http://codepen.io/anon/pen/FozGB

1

Этот вопрос не имеет на самом деле ничего общего с JQuery, а с самим JavaScript. «Самый чистый» способ был бы расширить струнный прототип в JavaScript с StartsWith-процедурой:

if (typeof String.prototype.startsWith != 'function') { 
    String.prototype.startsWith = function (str){ 
    return this.slice(0, str.length) == str; 
    }; 
} 

Далее вы можете использовать новую процедуру с любой строкой, которую вы хотите:

if(childValue.startsWith ("color-")){ 
    //show pickColor div 
} 

Если вы найти лучший метод для сравнения начала строки, вы можете просто изменить объявление прототипа один раз. Это намного проще, чем изменять все случаи, связанные с тем, что вы решили использовать в остальной части вашего кода.

Источники:

Javascript StartsWith

+0

Но! Теперь я смущен: 'str.indexOf ('color-') === 0' делает то же самое? – adeneo

+0

Эй, адено, да, но, видимо, this.slice (0, str.length) == str; намного быстрее, чем str.indexOf ('color-') === 0 http://stackoverflow.com/a/646643/1173521 – samvv

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