得到没有id的div之外的下一个textarea

时间:2013-08-13 13:41:49

标签: javascript textarea next

我需要获得下一个textarea,但我无法接下来甚至找不到。

示例代码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 FIDDLE:http://jsfiddle.net/qmpY8/1/

我需要工作的是surroundtest,另一个是工作但使用id的示例。我很想替换那个,因为我克服了对象。

2 个答案:

答案 0 :(得分: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> 

答案 1 :(得分:0)

如果这是您要使用的HTML,则.closest()也可用于获取textarea元素。如下所示:

var c = $(element).parent().closest('textarea');