className
HtmlDomElementにプロパティがあります。
function hasCssClass(elt,clz) {
return elt.className.match(new RegExp('(\\s+|^)'+clz+'(\\s+|$)'));
}
var inp = document.getElementsByTagName('input');
for (var i = inp.length-1; i>=0; i--) {
if ('text'===inp[i].type && hasCssClass(inp[i],'num_questions')) {
inp[i].value = "?";
}
}
http://jsbin.com/aluzuv/2
編集-要求に応じてフォローアップ。
各HTMLDOM要素には、要素に適用される空白で区切られたCSSクラスのリストclassName
を含む文字列であるプロパティがあります。クラスが特定の要素に適用されるかどうかを判断するには、リストでその文字列を検索する必要があります。
それを行うにはいくつかの方法があります。1つの方法は、className文字列を空白で分割し、目的のクラス(針)が結果の文字列配列の要素のいずれかと等しいかどうかを確認することです。これは次のようなものかもしれません:
function hasCssClass(elt, clz) {
var classes = elt.className.split(/\s+/);
for(i=0; i<classes.Length;i++) {
if (clz == classes[i]) return true;
}
return false;
}
別の方法は、正規表現の一致を使用することです。それは私がしたことです、なぜなら私にとってそれはより簡潔だからです。私が使用した正規表現は、何かを探し、次にクラス名、次に何か他のものを探します。最初のものは(\\s+|^)
、英語で「1つ以上の空白文字、または文字列の先頭」を意味します。他の何かは(\\s+|$)
、英語では「1つ以上の空白文字、または文字列の終わり」です。したがって、正規表現全体は、次の要素で構成される文字列と一致します。
- 空白または文字列の先頭
- 希望するクラス名
- 空白または文字列の終わり