将文本传递给Click上的功能

时间:2012-09-27 08:54:20

标签: javascript jquery html

请参阅以下代码:

function liReplace(txt) {
    $('#srch > a').text(txt);
}


<ul class="dropdown">
    <li id='srch'>
        <a href="#">All Categories</a>
        <ul class="sub_menu">
            <li>
                <a href="#">Gadgets</a>
                <ul>
                    <li onclick='liReplace("DVD")'><a href="#" >DVD</a></li>
                    <li><a href="#">XBOX</a></li>
                    <li><a href="#">Ps2</a></li>
                    <li><a href="#">Cellphone</a></li>
                </ul>
            </li>
            <li>
                <a href="#">Locations</a>
                <ul>
                    <li><a href="#">Indoor</a></li>
                    <li><a href="#">Outdoor</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

我想删除代码onclick='liReplace("DVD")'并将其更改为jquery。

我可以使用class =“dropdown”来识别它。如何编码并调用ul“下拉列表”中的<li>标签,并传递文本?

我在想

$("li").click(function () {
    $("li").val(this.text);

});

我知道这是非常错的,我的理由是我还在学习阶段。

--- ANSWER

$("ul.dropdown li > a").click(function () {
        var old_text = $(this).text();
        liReplace(old_text);
});

5 个答案:

答案 0 :(得分:3)

这样的事情应该有效:

$(".dropdown .sub_menu ul li").on("click", function() {
    $("#srch > a").text($(this).text());
});

答案 1 :(得分:2)

尝试 -

<li title='DVD'><a href="#" >DVD</a></li>


$("li").click(function () {

    $(this).find('a').text($(this).attr('title'));

});

答案 2 :(得分:2)

function liReplace(txt) {
    $('#srch > a').text(txt);
}


$("li a").click(function () {
    var old_text = $(this).text();
    liReplace(old_text);
});

答案 3 :(得分:2)

你可以像这样选择带有ul类名的li

    $('ul[class="dropdown"] li').click(function () {

       $(this).find('a').text($(this).attr('title'));

     });

答案 4 :(得分:2)

使用

$('li').live('click', function(){
    $('#srch > a').text($(this).text());   
});

$('li').click(function (){
    $('#srch > a').text($(this).text());   
});