Jquery セレクター:
//left side
$('section.abstract label.gcsubheader')
//right side
$('fieldset.abstract label.formElems')
両方の戻り値: (クラスは異なりますが、for="*"
残りは同じです)
<label for="design" class="displayHidden formElems">Design</label>
<label for="expertise" class="displayHidden formElems">Expertise</label>
<label for="skills" class="displayHidden formElems">Skills</label>
<label for="tools" class="displayHidden formElems">Tools</label>
<label for="projects" class="displayHidden formElems">Projects</label>
<label for="community" class="displayHidden formElems">Community</label>
<label for="interests" class="displayHidden formElems">Interests</label>
左のセレクターに次のようなものを追加したいと思います。
.find($('label[for="' + $(this).text().toLowerCase() + '"]'))
また
var $this = $(this).text().toLowerCase(); //and use the $this in the concatenation:
labels for="design"
selector のような要素の選択を実現し($('label[for="design"]'))
ますが、動的に実行します。アイデアは、私が初めてリファクタリングを試みており、非常に多くの要素を持っているということです。1 つの要素をクリックすると、自分自身を見つけ、そのlabel for
文字列を共有する別の要素を見つけたいと考えています。
私が試してみました:
$('section.abstract label.gcsubheader').click(function () {
var $this = $(this).text().toLowerCase();
//left element - hide
$('section.abstract label.gcsubheader')..find($('label[for="' + $this + '"]')).show();
//Right Side - show
$('fieldset.abstract label.formElems').find($('label[for="' + $this + '"]')).show();
}
と
$('fieldset.abstract label.formElems').find($('label[for="' + $(this).text().toLowerCase() + '"]')).show();
私が間違っているのかわかりません。抽象化の別のレイヤーが要素のテキストを取得/定義できるようにする必要がありますか、それとも構文が間違っているか、何か他の問題がありますか? 私はこれを取得したいと思っているので、左右の .hidden クラスを切り替えて、コードの非常に堅牢なリファクタリングを提供できます。おそらく次のようなものですか?:
$('label[for="*"]').click(function () {
// for each .toggleClass('hidden');
}
*
orの書き方もよくわかりませんfor each
が、そこにたどり着きます。大変お世話になりました。