Мне нужно найти элемент, основанный на конкретном атрибуте css
. css
применяется inline, и я не могу использовать класс.
В любом случае, чтобы достичь этого в jQuery
?
JQuery найти по встроенному атрибуту css
Ответ 1
Вы можете использовать attribute селектор
Например
$(":radio [style*='regular']")
вернет завернутый набор любых входных радиостанций, которые содержат 'regular'
в атрибуте style
Ответ 2
Я думаю, что это самое чистое решение. Скажем, вы хотите найти все элементы, где z-index имеет особое значение:
$('*').filter(function () { return $(this).css('z-index') == 101 })
Ответ 3
Я думаю, что вы можете написать собственный селектор jQuery
, чтобы сделать это.
Например, если вы хотите сделать выбор по определенному атрибуту стиля, вы можете сделать:
jQuery.extend(jQuery.expr[':'], {
styleEquals: function(a, i, m){
var styles = $(a).attr("style").split(" ")
var found = false;
for (var i = 0; i < styles.length; i++) {
if (styles[i]===m[3]) {
found = true;
break;
}
}
return found;
}
});
Затем его можно использовать в сочетании с любым другим селектором, который вы можете выбрать все элементы ввода с определенным стилем следующим образом:
$('input:styleEquals('width=10px')')
Ответ 4
Что-то вроде:
$('selector').each(function() {
if($(this).attr('style').indexOf('font-weight') > -1) {
alert('got my attribute');
}
});
Ответ 5
Да, я думаю, что самый быстрый и простой способ добиться желаемых результатов - это нацелить стили на селектор классов свойств.
Как указано выше:
$('div.yourClass[style*="background-color:Blue"]).css('color', 'White');
Таким образом мы нацеливаем все divs с тем же классом, которые имеют синий фон, и сообщают всем, чтобы они имели белый цвет текста. Конечно, вместо .css
мы можем использовать что-нибудь здесь, .animate
и сообщать анимацию всех блюз и т.д. Это очень помогло мне с отношениями с БД и людьми, создающими странные вещи в БД.
Раньше я был менее общим, а целевые строки с: содержит... но затем кто-то идет на базу и меняет тексты и метки, и до свидания код;)
Надеюсь, что это поможет.
Ответ 6
var ccsStyle="font-weight:bold";
var els = [];
$("*").each(function(){
var st = $(this).attr("style");
if(st.indexOf(cssStyle) > -1) els.push(this);
});
//do stuff with els
Ответ 7
Вы можете использовать флаг атрибута и использовать его, если знаете конкретный формат, в котором он находится.
$("[style*='position']")
Здесь будут найдены все элементы, определяющие атрибут css позиции.
Ответ 8
Вы можете найти любой встроенный атрибут с помощью .attr()
.. .attr('attr_name')
css_inline_value = $(element).attr('style');
if (css_inline_value = search_value) {
// do stuff
}