div 요소 내부의 텍스트를 바꾸려면 어떻게 하나요?

DIV 요소 내의 텍스트를 동적으로 설정해야 합니다. 브라우저에 안전한 가장 좋은 방법은 무엇인가요? 프로토타입js와 스크립터큘러스를 사용할 수 있습니다.

<div id="panel">
  <div id="field_name">TEXT GOES HERE</div>
</div>

함수는 다음과 같습니다:

function showPanel(fieldName) {
  var fieldNameElement = document.getElementById('field_name');
  //Make replacement here
}
질문에 대한 의견 (2)

간단히 사용할 수 있습니다:

fieldNameElement.innerHTML = "My new text!";
해설 (5)

2013년, 이 모두를 위한 판독값 updated later:

이 질문에 대한 답을 많이 서 있다, 하지만 모든 심하게 의존하고 있는 모든 못하며창조된 현재 브라우저의 재생성합니다 및 라이브러리보다는 to do things (out of the box).

[교체할 수 있는 텍스트 안에 div 요소, 현재 제공되는 노데스테스트콘텐토 사용하여 모든 브라우저.] [1]

fieldNameElement.textContent = "New text";

[1]: # Browser_compatibility https://developer.mozilla.org/en-us/docs/web/api/node.textcontent

해설 (4)

&lt pre&gt &lt code>;;; 함수은 쇼파넬 (fieldName) { var 필드나미레먼트 = 도쿠망스게테레멘트베이드 (field_name&quot ";). 반면 (필드나미레망스차일드노데지레래스 > = 1) { 필드나미레멘스콜리모프스차일드 (필드나미레망스퍼스트차일드); } 필드나미레멘트리아펜드차일드 (필드나미레멘스트로나르두쿠망스크리스테스트노데 (fieldName)); } &lt /code&gt &lt /pre>;;;

지금 이렇게 장점이 있습니다.

  1. 이 기술은 다른 언어, DOM, 그래서 위해서만 soundmixer. 이동형이든지 doesn& # 39 비표준 이너사믈 의존하지 않는다.
  2. fieldName XSS 공격을 시도할 수 있는 HTML 을 포함할 수 있습니다. 만약 우리가 아는 it& # 39 의 텍스트를 경계해야 할 수 있도록 만드는 대신, 텍스트 노드입니다 있지만브라우저에 갖는 HTML 구문 분석

If I were a, d, 사용하려는 자바스크립트 라이브러리 사용, 그리고 이렇게 I& # 39 포함한다. &lt pre&gt &lt code>;;; text (fieldname), $ (&quot, div # field_name") &lt /code&gt &lt /pre>;;;

참고로 [@AnthonyWJones& # 39. 주석문입니다] [1] 은 정정: &quot field_name"; # 39,) 는 특히 isn& 설명식 id 또는 변수 이름.

[1]: https://stackoverflow.com/questions/121817/replace-text-inside-a-div-element # comment27322_121898

해설 (6)
해결책

39 을 지원하는 방법을 사용하여, 꼭 이래야겠어요 Prototype& 업데이트하십시오 's' 또는 'toString' 모든 일반 텍스트, html 스니핏 javascript 객체여야 정의하는 방법이다.

$("field_name").update("New text");
해설 (7)
$('field_name').innerHTML = 'Your text.';

프로토타입의 멋진 기능 중 하나는 $('field_name')document.getElementById('field_name')와 동일한 작업을 수행한다는 점입니다. 사용하세요! :-)

프로토타입의 update 함수를 사용한 존 토플리의 답변은 또 다른 좋은 해결책입니다.

해설 (7)

결론부터 말씀드리자면 이너사믈 사용할 수 있습니다 (또는 prototype& # 39 의 업데이트 방법은 거의 똑같은 일을 할 수 있는). 이러한 문제를 피하기 위해 필요한 내용을 이너사믈 은 기술입니까 배정됩니다. 이를 통해 다른 코드 또는 타겟으로의 따라 합니다.

ie 에서 -

document.getElementById("field_name").innerText = newText;

ff 에서 -

5 329 {{{000}}}

(실제로는 가지고 있는 FF 에서 code)

HTMLElement.prototype.__defineGetter__("innerText", function () { return this.textContent; })

HTMLElement.prototype.__defineSetter__("innerText", function (inputText) { this.textContent = inputText; })

이젠 할 수 있을 뿐 아니라 그냥 이너테스트 사용 가능한 브라우저 지원 하는 경우 그 완벽한 솔루션을 사용하고 있는 것이 아닙니다 괜찼습니다 이너사믈 기초형상.

해설 (0)

중단한 부분만 계속 진행하길 원하신다면 그렇게 하셔도 됩니다:

if (fieldNameElement)
    fieldNameElement.innerHTML = 'some HTML';
해설 (0)

또한 DOM 표준 노바루이 속성 사용할 수 있습니다.

function showPanel(fieldName) {
  var fieldNameElement = document.getElementById(field_name);
  if(fieldNameElement.firstChild)
    fieldNameElement.firstChild.nodeValue = "New Text";
}
해설 (0)
el.innerHTML='';
el.appendChild(document.createTextNode("yo"));
해설 (0)

39 you& 경우, jQuery 는 JavaScript 를 사용하여 시작, re 경향이 많은 사이트에서 dom 을 사용해 매우 간단하다.

http://docs.jquery.com/Manipulation&quot, http://docs.jquery.com/Manipulation&lt, /a&gt &gt &lt, a href = ";;

간단하게 알 수 있을 것입니다. $ (&quot, # field-name"), .text (몇 가지 새로운 text.&quot ";)

해설 (1)

39 can& 이너테스트 사용할 경우, t solaris. 구조

  • 텍스트 데이터를 사용하여 기존 텍스트 업데이트하려면 # 성능 테스트
해설 (0)

JQuery # 39 의 here& 쉬운 방법:

var el = $('#yourid .yourclass');

el.html(el.html().replace(/Old Text/ig, "New Text"));
해설 (2)
function showPanel(fieldName) {
  var fieldNameElement = document.getElementById(field_name);

  fieldNameElement.removeChild(fieldNameElement.firstChild);
  var newText = document.createTextNode("New Text");
  fieldNameElement.appendChild(newText);
}
해설 (1)