我正在尝试将无序列表中的列表项中的文本复制到文本框中。
<div class='this_section_is_created_dynamically_and_repeats_up_to_99_times'>
<label>Serial</label>
<input name="part" class= "part" type="text">
<ul>
<li class="pattern"><a href="#" class="clickme">test1</a></li>
<li class="pattern"><a href="#" class="clickme">test2</a></li>
</ul>
<script>
$('.clickme').live('click', function() {
alert($(this).text()); // this works
// try to copy value clicked to input box. these do not work
$(this).prevAll('[input:text]').val($(this).text());
$(this).prev(":text").val($(this).text());
});
答案 0 :(得分:0)
prev()
和prevAll()
看着兄弟姐妹。输入是您ul
的父级,li
是您anchors
的父母$(this).parent().parent().prev("input:text").val($(this).text());
的父级:
这些应该有效:
$(this).parents('ul').first().prev('input:text').val($(this).text());
或者:
input
你也可以给你的<input name="part" class= "part" type="text" />
一个id,直接选择它而不是遍历DOM。
PS。您应该关闭输入标记:{{1}}
答案 1 :(得分:0)
试试这个。
$('.clickme').live('click', function(e) {
$(".part").val($(this).html());
});
您可以通过引用id或类的元素来缩短查询。 此外,你可以尝试这样的东西来获得特定的元素......
$('.clickme').live('click', function(e) {
$(this).parent().parent().prev().val($(this).html());
});
这将转到目标元素(a)的父(li),然后是该元素的父(ul),然后是元素的前一个兄弟(输入)。