jquery - onclick复制到文本框

时间:2011-09-07 02:51:10

标签: jquery click listener

我正在尝试将无序列表中的列表项中的文本复制到文本框中。

<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()); 
    });     

2 个答案:

答案 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),然后是元素的前一个兄弟(输入)。