ID正規表現で要素を取得する必要があります。そのソースの解決策を見つけました:
jQuery.expr[':'].regex = function(elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,
attr = {
method: matchParams[0].match(validLabels) ?
matchParams[0].split(':')[0] : 'attr',
property: matchParams.shift().replace(validLabels,'')
},
regexFlags = 'ig',
regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
return regex.test(jQuery(elem)[attr.method](attr.property));
}
誰もが正常に動作していると主張していますが、単純なコードを実行しようとする$(':regex[id,^node\-[0-9]+\-[0-9]+$]')
と、メソッドが存在しないというエラーが match[3].split に表示されます。実際、この関数の最初の行に console.log(match) を追加したところ、次のようになりました。
[":regex", "regex", undefined, undefined, index: 0, input: ":regex[id,^node-[0-9]+-[0-9]+$]"]
私は何を間違っていますか?