如何删除变量中找到的属性?

时间:2017-03-19 15:09:52

标签: javascript jquery

我有

var $imageSelected = '<div style="position: absolute"><span>hello</span></div>';

我需要从创建的变量

中删除style属性

我试过了:

$imageSelected + "*").removeAttr("style");

$imageSelected).find("*").removeAttr("style");

完整代码,将替换功能添加为每个第一个答案

$(".grid-item").on("click", function() {
  var $imageSelected = $(this).prop('outerHTML');
  var $paste = $imageSelected.replace(/style.+"/, '');
  $('#usp-custom-4').val(function(_, currentValue) {
    return currentValue + $paste
  });
});

使用$imageSelected).removeAttr("style");并不起作用,并且通过使用上面的代码,它确实删除了样式,但它将代码粘贴到文本区域很多次,而不仅仅this单击

  

$(&#39;#usp-custom-4&#39;)是textarea id

2 个答案:

答案 0 :(得分:2)

克隆,删除attr,选择html

$(".grid-item").on("click", function() {
  var $imageSelected = $(this).clone().removeAttr("style"),
      code = $("<div></div>").append($imageSelected).html();
      //code = $imageSelected.prop('outerHTML');
  $('#usp-custom-4').val(function(_, currentValue) {
    return currentValue + code
  });
});
div {
  padding: 1em; border: 1px solid black; margin: .5em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="grid-item" style="display:block;">1</div>
<div class="grid-item" style="display:block;">2</div>
<div class="grid-item" style="display:block;">3</div>
<div class="grid-item" style="display:block;">4</div>

<textarea id="usp-custom-4"></textarea>

答案 1 :(得分:1)

您可以使用例如replace功能。

var $myValue = '<div style="position: absolute"><span>hello</span></div>';

    $myValue = $myValue.replace(/ style.+"/, '');
    console.log($myValue);