これを達成する最良の方法は、バニラJavaScriptです。 私は本当にそれを理解したい。 ありがとうございます。兄弟純粋なJavaScriptの表示と非表示、今すぐjQuery
$(duplicate[ii]).hide().siblings().show();
これを達成する最良の方法は、バニラJavaScriptです。 私は本当にそれを理解したい。 ありがとうございます。兄弟純粋なJavaScriptの表示と非表示、今すぐjQuery
$(duplicate[ii]).hide().siblings().show();
DOM要素がduplicate[ii]
をされたと仮定すると、あなたは、ループ、その要素の親の子供たち、そして、ループの後に実際の要素のスタイルを設定することができます。
const d = duplicate[ii];
for (const el of d.parentNode.children) {
el.style.display = "block";
}
d.style.display = "none";
それは基本的に翻訳だながらしかし、私はそのように記述しないでしょう。あなたが唯一の要素は、任意の時点でhide
を持っていることを知っている場合は、ループをドロップすることができ
const d = duplicate[ii];
for (const el of d.parentNode.querySelectorAll(".hide")) {
el.classList.remove("hide");
}
d.classList.add("hide");
.hide {
display: none;
}
:私は、適切なスタイリングを持つクラスを使用すると思います。
const h = duplicate[ii].parentNode.querySelector(".hide")
if (h) {
h.classList.remove("hide");
}
duplicate[ii].classList.add("hide");
頻繁にこの操作を行う場合、私はクラス名、要素、およびコレクションを受ける効用関数を作成したいです。コレクションをオプションにすることができます。その場合は、兄弟を使用します。
swapClass("hide", duplicate[ii]);
const toArray = (list) => Array.prototype.slice.call(list)
const foo = (node) => {
let children = toArray(node.parentNode.children)
children.forEach(child => {
child.style.display = child === node ? 'none' : 'block'
})
}
duplicate[ii]
がDOMの場合duplicate[ii]
はCSSセレクタであるだけfoo(duplicate[ii])
場合、あなたは
toArray(document.querySelectorAll(selector)).forEach(node => {
foo(node)
})
を使用することができます。
function swapClass(clss, target, els) {
if (!els) {
els = target.parentNode.children;
}
for (const el of els) {
el.classList.remove(cls);
}
target.classList.add(cls);
}
そのちょうどこのよう
この回答は、ノードがBlock
の要素であると仮定しています。
これを1つずつ実装してください。最初に 'hide()'。その後、兄弟を取得します。それからすべてを見せてください。 Stackoverflowは無料のjquery->ネイティブDOMコード変換サービスではありません。 – zerkms
あなたがイージングとすべてについて話しているのなら、それは複雑です。つまり、 'Element.childNodes [increment] .nodeType === 1'を確認し、' Element.childNodes [increment] .style.opacity = opacityIncrement'を実行するだけです。下位互換性を持たせるには、 'Element.childNodes [increment] .style.filter = 'alpha(不透明度=' + alphaIncrement + ')'を実行します。 – PHPglue