首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Javascript中选定的选项卡捕获文本

问从Javascript中选定的选项卡捕获文本
EN

Stack Overflow用户
提问于 2019-11-04 23:12:51
回答 2查看 142关注 0票数 0

我使用Jquery在一些标签上工作,如果用户点击了一个特定的标签,我试图捕获所选标签的文本,如果点击的标签的文本匹配,但它没有显示,则执行一些操作。

~热心的帮助?

​

代码语言:javascript
复制
let selected = false;
$(".columns").click(function () {
    if (selected =! selected) {
        var subject = $(this).text();
        //alert(subject);
        if(subject == "Mathematics"){
            alert('Maths');
        }
        else if(subject == "English"){
            alert('Eng');
        }
        else{
            alert('Others');
        }
    }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
    <li class="columns">
        <label>
            <div>
                <span>Mathematics</span>
            </div>
        </label>
    </li>

    <li class="columns">
        <label>
            <div>
                <span>English</span>
            </div>
        </label>
    </li>

    <li class="columns">
        <label>
            <div>
                <span>Swahili</span>
            </div>
        </label>
    </li>

    <li class="columns">
        <label>
            <div>
                <span>Religious</span>
            </div>
        </label>
    </li>
</ul>

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-04 23:27:33

问题是,当你得到文本时,它是带空格的。使用.trim()删除它们。

​

代码语言:javascript
复制
let selected = false;
$(".columns").click(function () {
    if (!selected) {// means false
        var subject = $(this).text();
        //alert(subject);
        if(subject.trim() == "Mathematics"){
            alert('Maths');
        }
        else if(subject.trim() == "English"){
            alert('Eng');
        }
        else{
            alert('Others');
        }
    }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
    <li class="columns">
        <label>
            <div>
                <span>Mathematics</span>
            </div>
        </label>
    </li>

    <li class="columns">
        <label>
            <div>
                <span>English</span>
            </div>
        </label>
    </li>

    <li class="columns">
        <label>
            <div>
                <span>Swahili</span>
            </div>
        </label>
    </li>

    <li class="columns">
        <label>
            <div>
                <span>Religious</span>
            </div>
        </label>
    </li>
</ul>

​

票数 3
EN

Stack Overflow用户

发布于 2019-11-04 23:29:56

如果内容是静态的,我建议添加ID,因为这会强制执行唯一的命名,但是,为了回答您的问题,如果您希望通过名称匹配选项卡,我建议使用XPath,因为您不能使用CSS选择器按文本进行选择

代码语言:javascript
复制
//*[text()="Mathematics"]

如果您复制上述内容并将其粘贴到dev tools中,它应该会显示突出显示的匹配项。要将其与jQuery一起使用,请使用

代码语言:javascript
复制
$(document).xpathEvaluate(//*[text()="Mathematics"])

为了使用ID实现所需的结果,这对于这个用例来说是一个更好的实践,您只需按如下方式匹配您的ID:

HTML:

代码语言:javascript
复制
<span ID="Mathematics">Mathematics</span>

CSS:

代码语言:javascript
复制
#Mathematics { }

JQuery:

代码语言:javascript
复制
$("#Mathematics")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58696203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档