jquery - 使用jQuery将文本从最近的元素复制到字段中
问题描述
我有一系列产品可以通过如下标记获得输出:
<div class="product">
<p class="title">Product 01</p>
<span class="enquire">Enquire</span>
</div>
<div class="product">
<p class="title">Product 02</p>
<span class="enquire">Enquire</span>
</div>
<div class="product">
<p class="title">Product 03</p>
<span class="enquire">Enquire</span>
</div>
...以及同一页面上的单个表单,带有 H3 和此隐藏字段...
<form>
<h3></h3>
<input type="hidden" id="help" name="help" value="" />
</form>
我正在尝试做的是,例如,如果您单击任何产品的“查询”,产品标题将被复制到 H3 标签中的表单以及“帮助”隐藏字段值中。
我试过这样做,但它并没有像预期的那样工作:
$('.enquire').click(function() {
$('form h3').text($('.title').text());
$('form #help').val($('.title').text());
});
阿努的帮助会很糟糕。
解决方案
问题是因为您的逻辑是从所有.title
元素中选择文本。相反,您需要遍历 DOM 以读取与单击的.title
相关的文本。.enquire
为此,您可以使用siblings()
,如下所示:
$('.enquire').click(function() {
var title = $(this).siblings('.title').text();
$('form h3').text(title);
$('form #help').val(title);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="product">
<p class="title">Product 01</p>
<span class="enquire">Enquire</span>
</div>
<div class="product">
<p class="title">Product 02</p>
<span class="enquire">Enquire</span>
</div>
<div class="product">
<p class="title">Product 03</p>
<span class="enquire">Enquire</span>
</div>
<form>
<h3></h3>
<input type="text" id="help" name="help" value="" />
</form>
请注意,我将隐藏字段更改为在此演示中可见,其他逻辑相同。
推荐阅读
- go - 将命令行参数转换为结构字段
- flutter - 根据 Provider 值决定是否显示模态底页
- android-layout - 尝试调用虚拟方法 'void android.widget.ListView (progressbar)
- flutter - 参数类型 'void Function()? Function(int)' 不能分配给参数类型 'void Function(int?)?' 在零安全之后
- csv - Neo4j Cypher 使用 csv 构建图形
- python - Groupby Pandas 数据框基于来自另一个 df 的值
- tensorflow - 如何解决函数'resize'中的错误(-215:断言失败)!ssize.empty()?
- google-apps-script - 如何使用 Google 表格中的应用脚本更新图表的 X 轴和系列范围?
- vue.js - 在没有数据绑定的情况下设置输入字段的“值”
- flutter - 如何将 GridView.builder 图像放入 Tinder Cards 列表
?