解析字符串中的样式属性

时间:2017-03-27 08:39:11

标签: javascript jquery html css

我有一个样式属性字符串,如下所示

var style='max-width: 125px; height: auto; object-fit: cover; width: 125px; margin-left: auto; margin-right: auto;'

属性可以是任何属性。我想检查max-width是否包含,如果包含它将被删除。但我无法解决问题

 var imgmaxwidth = style;

 if (imgmaxwidth.includes("max-width")) {
   self.$dialog.find('.note-image-attributes-style-maxwidth').val(value of string max-width);
 }

我想获取此最大宽度值,然后从字符串中删除此属性。

最后的字符串将是

height: auto; object-fit: cover; width: 125px; margin-left: auto; margin-right: auto;

提前致谢

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

var node = this.tree.getNodesByItem(item);
if (node[0]) {
  domClass.toggle(node[0].domNode, className, add);
}
var style = 'max-width: 125px; height: auto; object-fit: cover; width: 125px; margin-left: auto; margin-right: auto;'
var styleArr = style.split(';')
var res = styleArr.filter(function (value) { 
  return !value.includes('max-width'); 
});
style = res.join(';');
console.log(style);

答案 1 :(得分:0)

var style = $('p').attr('style');
var parts = style.split(';');
var newstyle=[];
for (i=0; i < parts.length; i++)
{
    if (parts[i].split(':')[0].toLowerCase().trim() != 'max-width')
    {
        newstyle.push(parts[i]);
    }
}
$('p').attr( 'style', newstyle.join(';'));

我纠正了在前导或尾随空格或案例问题时可能遗漏的案例。 (提示@Useless Code的评论)