嗨,我似乎有一些jQuery代码的问题,但我似乎无法让它工作,
我想基于从1.6开始的内容添加CSS样式:
jQuery如下:
$('p strong:starts-with(1.6)').css('background-color','#3c763d');
根据代码,它应该只设置’强’元素的样式.
最佳答案
你没有做错什么……
您只需要构建自定义选择器扩展:
您只需要构建自定义选择器扩展:
jQuery.extend(jQuery.expr[':'],{
"starts-with" : function(el,i,p,n) {
// return el.textContent.startsWith(p[3]); // ES6
return (el.textContent || el.innerText).indexOf(p[3]) === 0;
}
});
$('p strong:starts-with(1.6)').css('background-color','#3c763d');
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexof
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
虽然你已经有了:contains选择器,
嗯,它与start-with不同,但在案例中很有用
$('p strong:contains(1.6)').css('background-color','#3c763d');
Sizzle selector engine已经习惯了各种各样的浏览器
"contains": markFunction(function( text ) {
text = text.replace( runescape,funescape );
return function( elem ) {
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
};
}),