2013-01-17 2 views
-1

기본적으로 SCEditor를 사용 중이며 메시지의 텍스트를 가져와 텍스트 영역에 붙여 넣을 때 포럼 게시물이나 기사 인용에 대한 버튼을 원합니다.이 코드는 다음과 같습니다.자바 스크립트를 사용하여 텍스트 영역 채우기

<script type="text/javascript"> 
jQuery.noConflict(); //disable global $ for jQuery 
jQuery(document).ready(function($){ 
    $(function(){ 
    $('#quote').click(function() { 
     $('textarea').sceditor('instance').insert("[quote=admin]Some text[/quote]"); 
    }); 
    }); 
}); 
</script> 

이제는 "[quote = admin] Some text [/ quote]"를 텍스트 영역에 넣습니다. 문제는 어떻게 든 동적이어야한다는 것입니다. 그렇다면 모든 주석 위에 해당 코드를 복사 할 필요가 없습니다. 이렇게 대신 :

insert("[quote=admin]Some text[/quote]"); 

그 섹션은 아래 상자에서 모든 텍스트를 가져올 것입니다? 따옴표 붙은 비트를 직접 게시물의 텍스트로 바꾸는 대신

그래서 기본적으로 견적 링크를 클릭하면 다른 div의 내용으로 위의 인용 된 비트를 대체 하시겠습니까?

+0

당신이 솔루션을 향한 진전을 보이는 것처럼 말입니다. 질문은 무엇입니까? 나는 네가 무엇을 요구하는지 이해하지 못한다. –

+0

질문을 명확히 할 수 있습니까? 또한 HTML 코드 나 스크립트를 생성하는 데 사용할 수 있습니까? – SnareChops

+0

제 질문은 어떻게 "[quote = admin] 일부 텍스트 [/ quote]"를 내용으로 대체합니까? 예를 들어 div 같이? – NaughtySquid

답변

0

당신은이 간단한 예제

<textarea id="ta" rows="5" cols="20"> 
    [quote=admin]Some text[/quote] 
</textarea> 
<br /> 
<input type="button" value="Click Me" onclick="rep()" /> 
<br /> 
<div id="dv" style="width:100px; height:100px; border:black 1px solid;"> 
    Some div content 
</div> 

<script type="text/javascript"> 
    function rep() { 
    var tatxt = $("#ta").val(); 
    var dvtxt = $("#dv").html(); 
    var newtxt = tatxt.replace(/\[quote\=admin\].*?\[\/quote\]/ig, dvtxt); 
    $("#ta").val(newtxt); 
    } 
</script> 

You can see it work here에 같은 정규 표현식을 사용할 수 있습니다.

0

항목의 구조에 따라 다릅니다. "quote"버튼과 div id = "entry"가 부모 컨테이너 나 다른 컨테이너 안에 중첩 된 같은 레벨에 있다고 가정 해 봅시다.

<div id="wholeThing"> 
    <div id="entry"> ....... </div> 
    <!-- other stuff goes here --> 
    <input type="button" name="quote" ......> 
</div> 

그럼 당신이 갈 수 있습니다 : 콘텐츠가있는 위치를 정확히 알고 있다면, 당신은 계층 구조에서 이전 요소를 반복 할 수

$(this).parent().find("#entry").text(); 

.

$('.className').click(function(){ ... 

이 경우 : 모든 "인용"버튼에 해당하는 클래스와

$('div input[name="quote"]').click(function() { // for name attribute 
    $('textarea').sceditor('instance').insert("[quote=admin]Some text[/quote]"); 
}); 

: 버튼에 대한

$(this).prev().prev().text(); // if content container is 2 elements in front 

당신이 클래스를 설정하거나 이름 속성을 사용할 수 있습니다 처리기를 클릭 모든 항목의 유일한 입력 요소입니다.

$('div input').click(function() { ... 
관련 문제