我需要获得下一个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的示例。我很想替换那个,因为我克服了对象。
答案 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');