2017-08-31 9 views
1

これを達成する最良の方法は、バニラJavaScriptです。 私は本当にそれを理解したい。 ありがとうございます。兄弟純粋なJavaScriptの表示と非表示、今すぐjQuery

$(duplicate[ii]).hide().siblings().show(); 
+1

これを1つずつ実装してください。最初に 'hide()'。その後、兄弟を取得します。それからすべてを見せてください。 Stackoverflowは無料のjquery->ネイティブDOMコード変換サービスではありません。 – zerkms

+0

あなたがイージングとすべてについて話しているのなら、それは複雑です。つまり、 'Element.childNodes [increment] .nodeType === 1'を確認し、' Element.childNodes [increment] .style.opacity = opacityIncrement'を実行するだけです。下位互換性を持たせるには、 'Element.childNodes [increment] .style.filter = 'alpha(不透明度=' + alphaIncrement + ')'を実行します。 – PHPglue

答えて

5

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]); 
0
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の要素であると仮定しています。

関連する問題