从 Javascript 中选择的选项卡捕获文本
Capturing Text from tab selected in Javascript
我正在使用 Jquery 处理某些选项卡,如果用户单击
一个特定的选项卡,我正在尝试捕获所选选项卡的文本
如果单击的选项卡的文本匹配但它执行一些操作
没有显示。
~请帮忙?
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');
}
}
});
<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>
问题是当您获得带有空格的文本时。使用 .trim()
删除它们。
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');
}
}
});
<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>
如果内容是静态的,我建议添加 ID,因为这会强制使用唯一命名,但是,为了回答您的问题,如果您希望按名称匹配选项卡,我建议使用 XPath,就像您一样不能 select 通过 CSS select 或
的文本
//*[text()="Mathematics"]
如果您复制以上内容并将其粘贴到开发工具中,它应该会显示突出显示的匹配项。要与 jQuery 一起使用,请使用
$(document).xpathEvaluate(//*[text()="Mathematics"])
要使用 ID 实现预期结果(对于此用例而言这是一种更好的做法),您只需按如下方式与您的 ID 匹配:
HTML:
<span ID="Mathematics">Mathematics</span>
CSS:
#Mathematics { }
JQuery:
$("#Mathematics")
我正在使用 Jquery 处理某些选项卡,如果用户单击 一个特定的选项卡,我正在尝试捕获所选选项卡的文本 如果单击的选项卡的文本匹配但它执行一些操作 没有显示。
~请帮忙?
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');
}
}
});
<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>
问题是当您获得带有空格的文本时。使用 .trim()
删除它们。
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');
}
}
});
<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>
如果内容是静态的,我建议添加 ID,因为这会强制使用唯一命名,但是,为了回答您的问题,如果您希望按名称匹配选项卡,我建议使用 XPath,就像您一样不能 select 通过 CSS select 或
的文本//*[text()="Mathematics"]
如果您复制以上内容并将其粘贴到开发工具中,它应该会显示突出显示的匹配项。要与 jQuery 一起使用,请使用
$(document).xpathEvaluate(//*[text()="Mathematics"])
要使用 ID 实现预期结果(对于此用例而言这是一种更好的做法),您只需按如下方式与您的 ID 匹配:
HTML:
<span ID="Mathematics">Mathematics</span>
CSS:
#Mathematics { }
JQuery:
$("#Mathematics")