jquery如何取当前元素的text?

因为英语水平差,想做个浏览器插件:在每个英文下,插入一个中文翻译而不改变原网站结构,然后jquery $().text()方法会把元素下所有text都给提取出来,比如下面的<li>

<li id="test" value="0">
    Guest - Guest
    <ul class="task-list">
        <li>Role = $everyone, $unauthenticated</li>
        <li>
            Has access to the "List projects" function, but none of the others
        </li>
    </ul>
</li>

如果用$("#test").text(); 取出来的值是所有TEXT,如下
"Guest - GuestRole = $everyone, $unauthenticatedHas access to the "List projects" function, but none of the others",我该如何做才能只取当前的这个值呢?

阅读 4.1k
4 个回答

遍历每个li吧

var test=$("#test").contents().filter(function() {
    return this.nodeType === 3;
    })[0].nodeValue;

这样可以达到题主的要求。
但是建议题主在Guest - Guest用一个标签包起来,这样获取起来比较直接,写法应该也比较正确。

用正则吧,把符合"<*>"的字符串替换成空字符创。唯一的缺点,是会把内容里的符合正则的内容也去掉。不过根据你的业务,应该没太大问题

用.html()取出来后.indexOf('<'),然后再用.substring()获取前indexOf的值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题