Это может быть несколько быстрее сделать это с явным фильтром:
$("*").filter(function() { return /\bLiveVal:/.test(this.className); }).something();
Это зависит от того, работает ли нативный "querySelectorAll", и делает ли это быстро.Это также позволило бы избежать проблемы «FooLiveVal».
Стоит отметить, что в мире HTML5 может быть лучше использовать атрибут «data-LiveVal» для хранения этой информации «переменной части» в ваших элементах.Тогда вы могли бы просто сказать:
$('[data-LiveVal]').something();
В HTML это будет выглядеть так:
<div class='whatever' data-LiveVal='variable part'>
Начиная с версии 1.5, jQuery будет извлекать материала ватрибут «data-foo», когда вы передаете хвост атрибута (часть после «data-») методу «.data ()»:
var variablePart = $(this).data('LiveVal');
«.data ()»метод не , однако обновляет свойство «data-foo» при сохранении новой «переменной части».
edit - если вы хотите значение , которое вставляется в класс после префикса имени вашего свойства ("LivaVal:"), вы можете извлечь его следующим образом:
var rLiveVal = /\bLiveVal:(\S*)\b/;
$('*').filter(function() { return rLiveVal.test(this.className); }).each(function() {
var variablePart = rLiveVal.exec(this.className)[1];
//
// ... do something ...
//
});
(или какой-либо вариант этой темы).