javascript - jQuery 只需要改变元素中的文本内容

标签 javascript jquery html

我有两个 li每个元素中有图标、文本的元素。我想在单击按钮时首先更改 li 图标和文本。目前,如果我使用 .text(),它会替换整个 anchor 标记内容。

$(document).ready(function(){
  $("#changeicon").click(function(){
    $("#listitems li:eq(0) a span").removeClass("ic1").addClass("ic3");
    //$("#listitems li:eq(0) a").text("Icon3");//Uncomment this line and check
  });
});
span {
  display:block;
  width:32px;
  height:32px;
}
.ic1 {
  background:url("https://cdn4.iconfinder.com/data/icons/wirecons-free-vector-icons/32/menu-alt-32.png") no-repeat;
}
.ic2 {
  background:url("https://cdn0.iconfinder.com/data/icons/navigation-set-arrows-part-one/32/Grid-32.png") no-repeat;
}
.ic3 {
  background:url("https://cdn2.iconfinder.com/data/icons/4web-3/139/menu-32.png") no-repeat;
}
.ic4 {
  background:url("https://cdn3.iconfinder.com/data/icons/eightyshades/512/45_Menu-32.png") no-repeat;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="listitems">
    <li>
        <a href="">
            <span class="ic1"></span>
            Icon1
            <span class="ic1"></span>
        </a>
    </li>
    <li>
        <a href="">
            <span class="ic2"></span>
            Icon2
            <span class="ic2"></span>
        </a>
    </li>
</ul>
<input type="button" id="changeicon" value="Change 1 to 3">

有什么方法可以只更改文本吗?

请不要向我提供类似 $("#listitems li:eq(0) a").html('<span class="ic3"></span>Icon3<span class="ic3"></span>') 的信息?我知道。

最佳答案

我想到的是将文本也放在某个元素中:

<li>
    <a href="">
        <span class="icon ic1"></span>
        <span class="text">Icon1</span>
        <span class="icon ic1"></span>
    </a>
</li>

然后在 JS 中做类似的事情:

$(document).ready(function(){
  $("#changeicon").click(function(){
    $("#listitems li:eq(0) a .icon").removeClass("ic1").addClass("ic3");
    $("#listitems li:eq(0) a .text").text("Icon3");
  });
});

可能还有更好的方法来做到这一点

关于javascript - jQuery 只需要改变元素中的文本内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068816/

相关文章:

javascript - 如何使用文本的 css 创建过渡,从右向左滚动,然后在没有 LAG 的情况下重新开始

javascript - Rack-Cors 并在 500 或 403 错误时发送 header

html - 如何限制Html5输入输入单引号和冒号

javascript - 如何删除 jquery 模态表单并将其保留为页面底部的简单 html 表单

html - A 标签/img 标签后的额外间距?

javascript - ajax 响应显示为零

javascript - Loop Div 的 Jquery

jquery - MVC3/4 验证隐藏字段

javascript - 如何扩展 plupload 来询问用户文件的标题?

php - 来自 json feed 的全日历开始结束时间