0

次のテキストエリアを取得する必要がありますが、次のことも検索することもできません。

サンプル コード HTML:

<div>
    <div class="guides_chapters_button" onclick="surroundtest('[center]', '[/center]');">Center</div>
    <div class="guides_chapters_button" style="text-decoration: underline;" onclick="surround('[u]', '[/u]');">u</div>
</div>
<textarea class="guides_chapters_textarea" id="textareamatch" name="matchupm" rows="7" cols="25"></textarea>

JS:

window.surround = function surround(text2,text3){
$("#textareamatch").surroundSelectedText(text2, text3);
}
function surroundtest(text2,text3){
var c = $(this).parent().next('textarea');
c.surroundSelectedText(text2, text3);
}

JS フィドル: http://jsfiddle.net/qmpY8/1/

私が作業する必要があるのは Surroundtest です。もう 1 つは、動作しているが ID を使用する例です。私はクローンオブジェクトを使用しているため、それを置き換えたいと思います。

4

2 に答える 2

2

thisステートメントは、要素ではなくオブジェクトにsurroundtest適用されます。windowあなたがすべきことは、関数定義を次のように変更することです:

function surroundtest(element, text2,text3){
    var c = $(element).parent().next('textarea');
    ...
}

それに応じて HTML は次のようになります。

<div class="guides_chapters_button" onclick="surroundtest(this, '[center]', '[/center]');">Center</div> 
于 2013-08-13T13:52:12.873 に答える
0

これが使用する HTML の場合、.closest() を使用して textarea 要素を取得することもできます。以下のように:

var c = $(element).parent().closest('textarea');
于 2013-08-13T14:01:10.513 に答える