現在、Chromeに特有の問題があります...これが私が達成しようとしていることです:
次のように、IDで識別された一連のテーブルセクションがあります。
T = Tab
G = Group within Tab
S = Sub-Group within Group
# = Numerical index
for example:
<tr id="T1"> = Tab 1
<td id="T1G3"> = Tab 1 , Group 3
<td id="T1G3S1"> = Tab 1, Group 3, Sub-Group 1
これまでのところ非常に簡単です...JavaScriptの助けを借りて、フォームでこれらのグループを有効または無効にすることも目指しています。さて、これが私が抱えている問題です...私のフォームが最初にロードされるとき、私はそれを必要とするフォームのすべてを無効にしたいです。そのために、動的関数を作成しました。これにより、影響を受けるタグと、それらのタグのID内で検索する対象を指定し、一致が発生した場合は、次のように無効にします。
Pseudo and Definition:
Function DisableAll(string TagNamesCSArray, string RegExpContent)
{
Split the tag names provided into an array
- loop through the array and get all tags using document.getElementsByTagName() within page
-- if tags are found
--- loop through collection of tags/elements found
---- if the ID of the element is present, and MATCHES the RegExp in any way
----- disable that item
---- end if
--- end loop
-- end if
- end loop
}
これは実装がかなり簡単で、これが最終結果です。
function DisableAll(TagNames, RegExpStr)
{
//declare local vars
var tagarr = TagNames.split(",");
var collection1;
var IdReg = new RegExp(RegExpStr);
var i;
//loop through getting all the tags
for (i = 0; i < tagarr.length; i++)
{
collection1 = document.getElementsByTagName(tagarr[i].toString())
//loop through the collection of items found, if found
if (collection1)
{
for (y = 0; y < collection1.length; y++)
{
if (collection1[y].getAttribute("id") != null)
{
if (collection1[y].getAttribute("id").toString().search(IdReg) != -1)
{
collection1[y].disabled = true;
}
}
}
}
}
return;
}
そして、私はこのようにそれに電話をかけます:
DisableAll("tr,td", "^T|^T[0-9]S");
簡単そうですか?「ハン!」間違った答えのバットマン...これは、Chromeを除くすべてのブラウザで完全に機能します...それはなぜですか?理解できない。たぶん私の正規表現に何か問題がありますか?
どんな助けでも大歓迎です。
乾杯!
MaxOvrdrv