выдает typeError: undefined is not an object (evaluating 'values.split')
но если вместо
function transform(el, prop, values) {
var propFull = getFullName(prop) || prop;
$(el).css(propFull, values)
}
написать:
function transform(el, prop, values) {
$(el).css(prop, values)
}
полностью игнорируя словарь сокращений, который мне очень необходим, то все работает ок.
но я хочу чтобы работало и так, и так. т.е можно было писать значения через запятую, как: border=2px,solid,black
и чтоб при этом словарь сокращений тоже работал, как: w=200px h=50px
полный пример игнорируя словарь:
var slovar = {
//width and height
'w': 'width',
'h': 'height'
}
function getFullName(shortName) {
return slovar[shortName];
}
function getProp(classStr) {
return classStr.split('=')[0]
}
function getValues(classStr) {
var values = classStr.split('=')[1]
return values.split(',').join(' ')
}
function transform(el, prop, values) {
var propFull = getFullName(prop) || prop;
$(el).css(propFull, values)
}
var elements = $('div, p, span, img, li, ul, a, h1, h2, h3, h4, h5, h6')
elements.each(function(i, el) {
var classList = $(el).attr('class')
if (!classList) return
var classProps = classList.split(' ')
$(classProps).each(function(i, str) {
var prop = getProp(str)
var values = getValues(str)
transform(el, prop, values)
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='border=2px,solid,black'>hello world</div>
и еще... как мне задать все существующие элементы в переменной elements
?
не писать же все по одному как в примере.?
var slovar = {
//width and height
'w': 'width',
'h': 'height'
}
function getFullName(shortName) {
return slovar[shortName];
}
function getProp(classStr) {
return classStr.split('=')[0];
}
function getValues(classStr) {
return classStr.split('=')[1];
}
function transform(el, prop, values) {
var newProp = getFullName(prop) || prop;
$(el).css(newProp, values);
}
var elements = $('div, p, span, img, li, ul, a, h1, h2, h3, h4, h5, h6')
elements.each(function(i, el) {
var classList = $(el).attr('class');
if (!classList) return;
var classProps = classList.split(';');
$(classProps).each(function(i, str) {
var prop = getProp(str);
var values = getValues(str);
transform(el, prop, values);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='border=2px solid black;w=200px;h=100px'>hello world</div>
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть форма в ней в зависимости от выбора радио кнопки вычисляется площадьКак связать радиокнопку с кнопкой? jsfiddle
В общем, суть проблемы в том, что карта инициализируется, потом в какой-то момент N вызывается setBoundsВидимо, из-за того, что блок в котором находится...
Как изменить значение по умолчанию на текст ? например, в инпуте по умолчанию написано ддмм
разбираюсь в книге Робин Никсон сооздаем динамимечские веб сайтызастраял на mysqldump