我如何使用jQuery来点击和选择并让它填充一个字段
How do I use jQuery to click and option and have it populate a field
我使用以下代码让jQuery处理选项的单击,并将该值放入字段中。除了我在标记中的部分外,代码都能工作。我不明白为什么粗体标记中的部分在单击时什么都不做,而后面的文本却做了。
这是HTML:
<div id="result" style="display: block;">
<div class="show" align="left">
<b>This text doesn't work when clicked</b>
This text works when clicked
<span class="name" align="left">113096G</span>
</div>
下面是jQuery:
// When clicking an option, the value populates the #projectsearchid field
jQuery("#result").live("click",function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
$('#projectsearchid').val($name);
});
也许有一种更简单的方法可以实现这一点?
var $name = $clicked.parent().find('.name').html();
find():描述:获取当前匹配的元素,由选择器、jQuery对象或元素过滤。
因此,该方法将在<b></b>
内部查找类名为name
的元素。。它当然找不到任何东西,因为在这种情况下,类名为name
的元素是sibling
,而不是child
。你会注意到,如果你添加.parent()
,它会找到一些东西
演示
$('#result').on('click',function(e){
var $clicked = $(e.target);
var $name = $clicked.parent().find('.name').html();
//$('#projectsearchid').val($name);
alert($name);
});
首先,不推荐使用jquery.live。您应该使用jquery.on。您的代码不起作用的原因是,当您单击b元素时,e.target与而不是div#result关联。当你打电话时:
$clicked.find('.name').html();
它找不到span.name,因为该元素没有该类的子级。当你点击时也会发生同样的情况。而是做
$clicked.parent('#result').find('.name').html();
那应该能满足你的需求。
相关文章:
- 如何使用与单个查找字段相关的信息填充字段
- 动态填充字段的Jquery验证
- 使用另一个字段的日期+14天自动填充字段
- Mongoose,按填充字段对查询进行排序
- 使用 Codeigniter 和 jquery 在 Modal Bootstrap 3 中的 DB 中填充字段
- 填充字段后更改不透明度
- 根据下拉选择(Javascript / HTML)动态填充字段
- JavaScript 重置 PHP/AJAX 中的填充字段
- 对填充字段的 MongoDB 查询
- 根据 $_POST 值填充字段
- Javascript 自动完成表单并在预填充字段中附加文本
- Jquery 未完成填充字段
- 在客户端使用 javascript、ajax 或 php 计算填充字段的数量
- 使用地理位置坐标填充字段
- 根据同时在另一个字段中输入的内容自动填充字段
- 如何将struts1与angularjs混合以自动填充字段
- 填充字段,该字段是单个查询中嵌入数组的属性
- Phantom.js填充字段,点击提交,现在只能访问下一页
- 如何在预填充字段时清除iOS占位符JS文本
- 我的response.jsp赢了'无法正确填充字段