如果文本或值以字符开头,运行 函数
If text or value starts with a character, run function
我需要检测跨度中的文本是否以字母 "x" 和 运行 开头的函数。我读到我可以用字符串中的“^”来做到这一点 - 但在检查文本时遇到问题...
<span>xfoo</span>
if ($('span:contains(^"x")').length > 0) {
alert ('there is text on this page starts with x');
}
我的奖励积分还可以检查输入字段的值...
您必须遍历所有 <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()
可以用来select只有那些有一些字符串(x).
$('span:contains("x")').each(function() {
...
首先您需要 trim()
文本删除 leading/trailing 空格。从那里你可以使用 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。
使用正则表达式将有助于验证文本。
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')
}
我需要检测跨度中的文本是否以字母 "x" 和 运行 开头的函数。我读到我可以用字符串中的“^”来做到这一点 - 但在检查文本时遇到问题...
<span>xfoo</span>
if ($('span:contains(^"x")').length > 0) {
alert ('there is text on this page starts with x');
}
我的奖励积分还可以检查输入字段的值...
您必须遍历所有 <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()
可以用来select只有那些有一些字符串(x).
$('span:contains("x")').each(function() {
...
首先您需要 trim()
文本删除 leading/trailing 空格。从那里你可以使用 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。
使用正则表达式将有助于验证文本。
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')
}