지정된 게체에 표현식을 설정한다.

인수/파라메터
sPropName

필수적인 요소이며, 표현식 sExpression이 추가될 속성의 이름을 지정하는 문자열이다.

sExpression

필수적인 요소이며, 세미콜론(;)이나 따옴표(',") 없이 유효한 스크립트(Script, JavaScript, VBSCript) 문장으로 작성한 표현식이다. 이 문자열은 현재 페이지의 다른 속성들의 참조를 포함할 수 있다. 스크립트 속에 포함된 개체의 속성들에는 배열변수 참조를 허용하지 않는다.

sLang
선택적인 요소이며, 언어를 지정하는 문자열이다.
JScript 디폴트이며, JScript 언어이다.
VBScript VBScript 언어이다.
JavaScript JavaScript 언어이다.
반환값

반환값은 없다.

특기

setExpression 메서드는 지원되는 CSS 속성들(Cascading Style Sheets)과읽기/쓰기 DHTML 속성들에 표현식을 설정하는데 사용된다.
setExpression 메서드에 의하여 설정된 표현식을 제거하기 위하여, removeExpression 메서드를 사용한다.

다음 문법은 CSS 속성들(Cascading Style Sheets)과 DHTML 속성들에서 표현식을 제거하는 방식을 보여준다.

sLang 파라메터에 의하여 지정된 언어로 표현된 데이터 형식은 표현식 sExpression에 허용된 하나의 가능한 값에 맞아야 한다.

처음 파라메터에 의하여 지정왼 속성이나 애트리뷰트가 문자열을 필요로 하는 경우에는, 두번째 파라메터의 데이터 타입은 문자여이어야 한다. 아니면 setExpression 메서드를 수행하기 전에 두번째 파라메터가 판정되고, 표현식이 판정의 결과에따라 설정되도록 한다.

표현식 속에서 개체의 uniqueID 속성을 사용하는 것은 개체를 참조하게 한다. 표현식에서 uniqueID의 사용은 개체를 참조하는데 사용하는 id 대신에 하여 사용하는 방식이다.

cssText 속성은 탄력적 속성들이 젹용되지 않는 하나의 유일한 속성이다. cssText 속성을 탄력적 속성 메서드들 같이 사용하지 말아야 한다.

다음은 setExpression 메서드에서 sExpression 파라메터에 의해 발생되는 일반적인 문제점을 설명한다. 이 sExpression는 유효하지만 작용되지 않을 수 있다..

적용
개체scriptIE
참조
getExpression, remove, setExpression, recalc

box1Obj + box2Obj : box2Obj.style.width

결과 표시창

setExpression 메서드와 removeExpression 메서드로 div박스의 width 속성 표현식을 설정하고, 제거하는 예제이다.

box1Obj <INPUT type=text id=box1Obj value=50 size=3 onchange="showLength.innerText=box3Obj.style.width">+
box2Obj <INPUT type=text id=box2Obj value=50 size=3 onchange="showLength.innerText=box3Obj.style.width"> :
box2Obj.style.width <SPAN id=showLength></SPAN><BR>
<DIV id=box3Obj style="background-color:blue"></DIV><BR>
<SCRIPT>
var sExpress,bVal;
document.onlad=setexp();
function setexp(){
  box3Obj.style.setExpression('width','eval(box1Obj.value)+eval(box2Obj.value)','jscript');
  showLength.innerText=box3Obj.style.width;
}
function getexp(){
  sExpress=box3Obj.style.getExpression('width');
  str='청색 박스의 width의 표현식은 ' + sExpress + '이고,<BR>';
  str+='이 width 속성은 값 ' + box3Obj.style.width+'을 갖는다.';
  showA.innerHTML=str;
  showLength.innerText=box3Obj.style.width;
}
function remexp(){
  bVal=box3Obj.style.removeExpression('width');
  showA.innerHTML='표현식이 제거되었나? '+bVal;
}
</SCRIPT>
<INPUT type=button id=Button1 value="표현식 내용" onclick="getexp()">
<INPUT type=button id=Button2 value="표션식 제거" onclick="remexp()">
<INPUT type=button id=Button3 value="표현식 생성" onclick="setexp()"><BR>
<DIV id=showA>결과 표시창</DIV>

제품수량 단가합계
맛동산2 500
알사탕5 800
총계

tableinnerText 속성을 업데이트하기 위하여 uniqueID 속성과 setExpression 메서드를 사용하였다.

<SCRIPT>
function doCalc(){
  var iLen=oTable.rows.length-1;
  for(var i=1;i< iLen;i++){
    var oRow=oTable.rows[i];
    var oCells=oRow.cells;
    oCells(3).setExpression('innerText', 'doGetVal(' + oRow.uniqueID + ')');
  }
  var oGrand=oTable.rows(iLen).cells(1);
  oGrand.setExpression('innerText','doLineTotal()');
}
function doLineTotal(){
  var iValue=0;
  var iLen=oTable.rows.length-1;
  for(var i=1;i< ilen;i++){
    iValue+=parseFloat(oTable.rows(i).cells(3).innerText);
  }
  return iValue;
}
function doGetVal(oRow){
  var oCells=oRow.cells;
  var oPrice=oCells(2);
  var oQuantity=oCells(1);
  var sPrice;
  var sQuantity;
  if (oPrice.childNodes[0].nodeName=='#text'){
    sPrice=oPrice.innerText;
  } else{
    var vPrice=oPrice.childNodes[0].value;
    sPrice=(vPrice=='' ? '0' : vPrice);
  }
  if (oQuantity.childNodes[0].nodeName=='#text'){
    sQuantity=oQuantity.innerText;
  } else{
    var vQuantity=oQuantity.childNodes[0].value;
    sQuantity=(vQuantity=='' ? '0' : vQuantity);
  }
  var vAlg1=parseFloat(sPrice) * parseFloat(sQuantity);
  return vAlg1;
}
</SCRIPT>
<TABLE id="oTable" border=1 width=500 style="text-align:center">
<TR>
<TH>제품</TH><TH>수량</TH>
<TH>단가</TH><TH>합계</TH>
</TR>
<TR>
<TD>맛동산</TD><TD EDIT="true">2</TD>
<TD EDIT="true">500</TD><TD></TD>
</TR>
<TR>
<TD>알사탕</TD><TD EDIT="true">5</TD>
<TD EDIT="true">800</TD><TD></TD>
</TR>
<TR>
<TH COLSPAN=3>총계</TH><TH></TH>
</TR>
</TABLE>
<P><BUTTON onclick="doCalc()">계산 적용</BUTTON></P>