如果文本或值以字符开头,请运行函数

时间:2016-05-04 13:18:44

标签: javascript jquery html contains startswith

我需要检测跨度中的文本是否与字母“x”结果并运行一个函数。我读过我可以用字符串中的“^”来做 - 但是无法使其工作检查文本...

 <span>xfoo</span>
if ($('span:contains(^"x")').length > 0) {
    alert ('there is text on this page starts with x');
}

我的加分点也可以检查输入字段的值......

3 个答案:

答案 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')
}