1

我的代码如下

function liReplace(str) {
    document.getElementById('srch').innerHTML = str;
}
<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>

我想将所有类别更改为点击过的内容

<li onclick='liReplace("DVD")'><a href="#" >DVD</a></li>

我用javascript函数改变了innerhtml,但整个孩子li都没有了。

仅帮助获取第一个李文的部分。

4

2 回答 2

5

应该这样做 - 您可以替换<a>顶部元素中的文本<li>

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

确保>只有直接的孩子被改变。

于 2012-09-27T08:10:40.227 回答
1

使用“>”强制孩子

function liReplace(txt) {
    $("#srch > a").html(txt);
}
于 2012-09-27T08:13:04.890 回答