2016-03-22 14 views
-1

リピーターとその中にいくつかのアイテムがあります。これらの項目の1つはリンクボタンです。私はそれを隠したいと思うし、実際には最初のものだけができる。リピーターが4つのレコードを表示する場合、最初のリンクボタンのみが非表示になります。私は、リピータの内部を回ってすべてのリンクボタンを隠すためにループが必要であることがわかりますが、私はJavaScriptの初心者ですから本当に立ち往生しています。ここ は私のリピーターです:リピーターのリンクボタンをJavaScriptで隠す

​​

そして、私のjavascriptのコード:あなたは何ができるか

function hideColumn() { 
    sartnameDiv.style.display = 'block'; 

    var bizimDiv = document.getElementById("silBeni"); 
    bizimDiv.style.display = "none"; 
} 
+0

どのように私は心の中でこれらを維持します。このhideCoulmn方法 – Webruster

答えて

2

は、クラスで検索することです。同じidを持つ要素は複数存在することはできないため、クラスごとに複数の要素を検索します。

var elements = document.getElementsByClassName("sil"); 

Array.prototype.forEach.call(elements, function(element) { 
    element.style.display = "none"; 
}); 

あなただけではなく、普通のアレイのように書くの

Array.prototype.forEach.call 

を必要とする理由があるので、通常の配列関数は、のgetElementsByClassNameからの結果に使用することはできません。

elements.forEach(function(element){ 
}); 

あなたは調整する必要がありので、今、私たちはあなたがページ上で、このクラスでより多くの要素を持っている場合、彼らはまた、発見されることを意味し、クラスSILを持つすべての要素を見つけること、しかし、注意を行いますあなたのhtmlに応じて。

編集:Webrusterのコメントによれば、関数を呼び出すときに関数が呼び出されるようにする必要があります。

+0

を呼び出している、あなたに感謝:) –

+0

@fakenickは、私はちょうど代わりにHTMLを変更するので我々はCSSを作成することができますし、要素どこに追加するいくつかのより多くのポイントを追加しましたコードの変更が最小限に抑えられるように、それらを隠したいと思っています。 – Webruster

+0

@Webrusterはい、スタイルから動作を分離するのが普通です。クラスに入ると、別のオプションとして、.hide {display:none}のような何らかの隠蔽クラスを使用し、その代わりにelement.style.displayで要素レベルのスタイルを操作すると、少し不安を感じるようになります。 – Fakenick

0

HTMLを変更する代わりに、ダミーのCSSを作成し、HTMLにいくつかの操作を追加し、残りの操作を@Fakenickできちんと説明することができます。 あなたは以下のようにダミーのCSSを追加する方法を参照してください:ここでは

HTMLはダミーのCssを作成し、

を非表示にすること 本部に追加しよう

<asp:Repeater DataSourceID="EntityDataSourceHdcvi" ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     //Some other code 
     <div id="silBeni" class="sil fl hideclass"> 
      <asp:LinkButton ID="deleteProduct" runat="server" Text="Kaldır" CommandArgument='<%#Eval("UrunId")%>' CommandName="deleteProduct" OnClick="LinkButton_Click"></asp:LinkButton> 
     </div> 
    </ItemTemplate> 
</asp:Repeater> 

です

<style> 
.hideclass{ 
} 
</style> 

JS

function hideColumn() { 
    sartnameDiv.style.display = 'block'; 
var elements = document.getElementsByClassName("hideclass"); 
    Array.prototype.forEach.call(elements, function(element) { 
    element.style.display = "none"; 
}); 

} 
関連する問題