我需要检测跨度中的文本是否与字母“x”结果并运行一个函数。我读过我可以用字符串中的“^”来做 - 但是无法使其工作检查文本...
<span>xfoo</span>
if ($('span:contains(^"x")').length > 0) {
alert ('there is text on this page starts with x');
}
我的加分点也可以检查输入字段的值......
答案 0 :(得分:3)
您要迭代所有<span>
元素,检查条件并运行代码。使用text()
获取元素的textContent,使用trim()
删除前导和尾随空格。
$('span').each(function() {
if ($(this).text().trim().startsWith('x')) {
alert('Check this span, it starts with x');
// Use `$(this)` here to refer to the current <span>
}
});
如果DOM中有许多<span>
元素,:contains()
可用于仅选择具有某些字符串的元素( x )。
$('span:contains("x")').each(function() {
...
答案 1 :(得分:0)
首先,你需要trim()
文本来删除前导/尾随空格。从那里,您可以使用filter()
和charAt(0)
来比较第一个字符。像这样:
var $spans = $('span').filter(function() {
return $(this).text().trim().charAt(0) == 'x';
});
if ($spans.length) {
console.log('Check these spans which start with x');
$span.addClass('foo');
}
您可以使用startsWith()
代替charAt()
,但要注意,在任何版本的IE(甚至是Chrome 41,FF 17和Opera 28)中都不支持使用polyfill。< / p>
答案 2 :(得分:0)
使用regx将有助于验证文本。
var s = document.getElementsByTagName('span');
var pattern = new RegExp('^[x]');
if(pattern.test(s[0].innerText)){
console.log('found match');
}
else {
console.log('not found')
}