2011-12-26 6 views
0

でリストからこの値を渡しI次のリストがあります。はjavascriptを

<ul> 
    <li onclick="populateComment(..this.)">very good </li> 
    <li onclick="populateComment(..this.)">not so good</li> 
    <li onclick="populateComment(..this.)">no t.....</li> 
</ul> 

とJavaScriptを:

function populateComment() { 

    document.getElementById("COMMENT").value = document.getElementById("COMMENT").value + 'THE_STRING_VALUE_FROM_THE_LIST'; 

} 

だから、アイデアがある私は、上のクリックして記入テキストエリアを、持っていることリスト。

したがって、最初のリストをクリックすると、「非常に良い」というテキストをテキストエリアに追加する必要があります。しかし、私はテキストを再入力したくない「非常に良い」私の関数の中で、私はthis.value..などの引数として何かを直接それを取ることができるので、それは自動的に<li> ...</li>

はお時間をいただき、ありがとうございますの間の文字列を取ります。あなたが探している

答えて

3

this.textContent || this.innerText 

this.textContentthis.innerTextはIEの古いバージョンのために必要とされる、すべてのまともなブラウザでサポートされています。

代わりのonclickハンドラを複数回複製する、あなたはまた、<ul>要素にリスナーをバインドすることができます。

// Replace <ul> with <ul id="populatefrom"> 
document.getElementById("populatefrom").onclick = function(ev) { 
    ev = ev || window.event; //Backwards compatible with IE 
    var target = ev.target; 
    if (target.nodeName.toLowerCase() == "li") { 
     document.getElementById("COMMENT").value += target.textContent || target.innerText; 
    } 
}; 
+0

をいただき、ありがとうございますあなたの答え。 – Adnan

+0

@Adnan簡単な実装のために更新された答え。私は単純な '.onclick = ..'形式を使って、' addEventListener'(適切なブラウザ)や 'attachEvent'(IE)のための条件を定義することを避けました。 –

+0

私が必要としたもの。もう一度ありがとう。 – Adnan

1

は、あなたがテキストの単純なビット以外のものを持っていない場合、あなたはまた、使用することができます:すべての任意のノード(太字、スパン、またはテキスト以外の何か...でも、HTMLのコメント)がある場合

this.firstChild.nodeValue; 

しかし、これは動作しません、あなたはロブWが与えたtextContent/innerTextコンボを必要とします。

-1

あなたがそうのようにjQueryを使ってこれを行うことが確かに(まだこれをテストしていない):

<ul> 
    <li class="populateComment">very good </li> 
    <li class="populateComment">not so good</li> 
    <li class="populateComment">no t.....</li> 
</ul> 

とあなたのjQuery:

jsfiddle作業
$('.populateComment').click(function(){ 
    $('#textboxID').val($(this).html()); 
}); 

http://jsfiddle.net/zEaam/

+2

-1これは非常に基本的なもののjQueryを導入するためのものです。 –

+0

また、jQueryを使用している場合は、それをフルに活用することをお勧めします: '$(" li ")。 ());}); ' –