자바 스크립트를 사용하여 인라인 스타일 추가


91

이 코드를 동적으로 생성 된 div 요소에 추가하려고합니다.

style = "width:330px;float:left;" 

동적을 생성하는 코드 div

var nFilter = document.createElement('div');
nFilter.className = 'well';
nFilter.innerHTML = '<label>' + sSearchStr + '</label>';

내 생각은 나중에 스타일을 추가하는 < div class="well"것이지만 어떻게할지 모르겠습니다.


1
어떤 차이가 있습니까? 인라인 스타일은 항상 가장 높은 특이성을 갖습니다.
Amberlamps 2013

사업부가 동적으로 생성되기 때문에 완전한 자바 스크립트 라이브러리 스크립트이기 때문에, 나는 정적을 사용할 수 없습니다
커티스 크루

아마도 이것은 XY 문제 일 것입니다. 당신은 무엇을 성취하려고합니까? 가 nFilter.style.width = '330px'; nFilter.style.float = 'left';당신이 찾고있는 무엇?
Amberlamps 2013

답변:


127
nFilter.style.width = '330px';
nFilter.style.float = 'left';

요소에 인라인 스타일을 추가해야합니다.


37

스타일에서 직접 할 수 있습니다.

var nFilter = document.createElement('div');
nFilter.className = 'well';
nFilter.innerHTML = '<label>'+sSearchStr+'</label>';

// Css styling
nFilter.style.width = "330px";
nFilter.style.float = "left";

// or
nFilter.setAttribute("style", "width:330px;float:left;");

6
CSS 스타일링은 아니지만 setAttribute를 사용하는 세 번째 옵션이 완벽하게 작동했습니다.
milkersarac

16

jQuery 사용 :

$(nFilter).attr("style","whatever");

그렇지 않으면 :

nFilter.setAttribute("style", "whatever");

작동해야


6
이 경우에는 JQuery를 사용할 필요가 없습니다
Dharman 2013

10
그는 JQuery없이 대체 솔루션을 제공합니다. 반대표의 필요성을 보지 마십시오.
Termato

정확하고 요청 된 바닐라 JS 솔루션이 대체 솔루션입니까? 아무도 언급하지 않은 도서관과 관련하여 아무도 요청하지 않았습니까?
Silvio Langereis

14

이것으로 시도 할 수 있습니다.

nFilter.style.cssText = 'width:330px;float:left;';

그것은 당신을 위해 그것을 할 것입니다.


10
var div = document.createElement('div');
div.setAttribute('style', 'width:330px; float:left');
div.setAttribute('class', 'well');
var label = document.createElement('label');
label.innerHTML = 'YOUR TEXT HERE';
div.appendChild(label);

7

몇몇 사람들은 내가 좋아하는 setAttribute를 사용하는 예를 가지고 있습니다. 그러나 현재 설정된 스타일이 없다고 가정합니다. 나는 아마도 다음과 같이 할 것입니다.

nFilter.setAttribute('style', nFilter.getAttribute('style') + ';width:330px;float:left;');

또는 다음과 같은 도우미 함수로 만드십시오.

function setStyle(el, css){
  el.setAttribute('style', el.getAttribute('style') + ';' + css);
}

setStyle(nFilter, 'width:330px;float:left;');

이렇게하면 계속해서 스타일을 추가 할 수 있으며 항상 현재 스타일에 추가하여 현재 설정된 스타일이 제거되지 않습니다. 또한 추가 세미콜론을 추가하여 스타일이 누락 된 경우 완전히 구분되었는지 확인하기 위해 다른 스타일을 추가합니다.



3

각 css 속성을 한 줄씩 추가하지 않으려면 다음과 같이 할 수 있습니다.

document.body.insertAdjacentHTML('afterbegin','<div id="div"></div>');

/**
 * Add styles to DOM element
 * @element DOM element
 * @styles object with css styles
 */
function addStyles(element,styles){
  for(id in styles){
    element.style[id] = styles[id];
  }
}

// usage
var nFilter = document.getElementById('div');
var styles = {
  color: "red"
  ,width: "100px"
  ,height: "100px"
  ,display: "block"
  ,border: "1px solid blue"
}
addStyles(nFilter,styles);




-1

이제 클래스를 만들었으므로 CSS로 수행하십시오. .well {너비 : 330px; 왼쪽으로 뜨다; }

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.