我正在尝试获取下面的标记以从选择中获取值并将其粘贴到输入中.
<td class="ms-formbody" style="width:385px">
<input name="ctl00$PlaceHolderMain$dlFields$ctl00$txtSource" type="text" id="ctl00_PlaceHolderMain_dlFields_ctl00_txtSource" class="ms-input" />
<select name="ctl00$PlaceHolderMain$dlFields$ctl00$ddlSourceFields" id="ctl00_PlaceHolderMain_dlFields_ctl00_ddlSourceFields" class="ms-input">
<option value="Some Field Name 1">Some Field Name 1</option>
<option value="Some Field Name 2">Some Field Name 2</option>
<option value="Some Field Name 3">Some Field Name 3</option>
<option value="Some Field Name 4">Some Field Name 4</option>
</select>
<a href="javascript: appendField();">append</a>
</td>
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚如何抓住兄弟姐妹.我试过,$(this).siblings("input").val()但错误的网页错误'parentNode.firstChild' is null or not an object.
试过$(this).prev().prev().val(),然后回来未定义.抓住这些东西最好的方法是什么?
谢谢,大卫
Tim*_*awa 14
您的问题源于您的方法.直接调用函数将不会执行您期望的操作,即使用表示<a>标记的jquery对象.您可以注册一个函数来响应click<a>上的事件,而不是直接调用函数.
首先,给你的链接一个id:
<a href="#" id="appendSelect">append</a>
Run Code Online (Sandbox Code Playgroud)
然后使用用appendField()响应的jQuery选择替换你的函数click
$(document).ready(function() {
$("#appendSelect").click(function() {
var $thatInput = $(this).siblings("input");
var $selectValue = $(this).siblings("select").val();
$thatInput.val($selectValue);
})
});
Run Code Online (Sandbox Code Playgroud)
用这种方法$(this)代表你的<a>.
你可以通过使用javascript调试控制台来看到我正在谈论的更深入的内容(chrome默认使用一个,你可以在Firefox上使用Firebug).再次尝试基于原始函数的方法并添加console.log($(this));语句.您应该看到它打印出DOMWindow对象.现在在click函数中放入相同的日志语句,你会看到jQuery给你一个$(this)代表你期望它.
| 归档时间: |
|
| 查看次数: |
19022 次 |
| 最近记录: |