jquery - 使用 jQuery 更改 div 单击时最接近的文本区域值

标签 jquery jquery-selectors

我在做什么

  • 目前我有一个包含多个输入和一个文本区域的表单。
  • 在文本区域上方有一个名为表情符号的 div
  • 此 div 包含可点击的表情符号

HTML

<form>
    <input name="example-1" type="hidden" value="spongebob" />
    <input name="example-2" type="hidden" value="gary"  />

    <div id="smilies">
        <div id="smilies-box">
            <img src="http://example.com/smilies/smile.gif" title=":)" />
        </div>
    </div>

    <textarea name="example-3"></textarea>

    <button>Post</button>
</form>

我正在尝试做什么

我的目标是,当点击#smilies-box中的任何图像时,将该图像的标题插入到正下方的textarea中。

目前我正在尝试以下 jQuery,但它没有找到 textarea

jQuery

$(document).on("click", "#smilies-box img", function(){
    $(this).closest("textarea").val($(this).attr("title"));
});

我做错了什么?

最佳答案

closest() 用于在 DOM 层次结构中向上,而不是跨越或绕过。您可能会寻找的是 nextUntil().parent()

结合

如果你想变得非常奇特,你也许可以得到这样的东西来为你工作:

$(document).on("click", "#smilies-box img", function(){
    $(this).closest(":has(textarea)").children().has(this).nextUntil('textarea').val($(this).attr("title"));
});

关于jquery - 使用 jQuery 更改 div 单击时最接近的文本区域值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022236/

相关文章:

jQuery 将 NOT 放入选择器的正确位置

javascript - jquery click() 事件不适用于 append 的 html 标签

javascript - Jquery 验证引擎正则表达式

javascript - 使动态生成的 div 可放置

javascript - Jquery .attr() 将值设置为未定义,为什么?

jquery - 动态 iframe 宽度在 FF8/IE9 中不起作用

javascript - 从对象数组创建值数组

jquery - 如果使用 jQuery 选择复选框,则有条件地将输入字段的属性设置为必需

jquery - 如何使用一个 jQuery 函数更改两个独立元素内的文本?

javascript - jQuery 淡入淡出 DIV 内容