2012-04-16 11 views
1

は、私がこのタグでonclickstyle属性を持っているClass Nameクラスで要素を取得し、JavaScriptで属性を追加/削除する方法は?言及した以下

var Tag = replaceContentInContainer('className'); 

function replaceContentInContainer(matchClass) { 
    var elems = document.getElementsByTagName('*'), i; 
    for (i in elems) { 
     if ((" " + elems[i].className + " ").indexOf(" " + matchClass + " ") > -1) { 
     } 
    } 
} 

によってget the elementへの道です。

私の質問は、JavaScriptを使用してこのタグのonclick/style属性を削除または追加するにはどうすればよいですか?

+1

あなたは、このタスクのためのjQueryを使用することを検討またはあなただけの純粋なJSが必要でしょうか? –

+0

それはあなた次第です。ありがとう。 – Pankaj

+2

[jquery class selector](http://api.jquery.com/class-selector/)を使ってみませんか? – ocanal

答えて

2

:私はあなたの関数は、そのクラス名を持つ要素の配列を返す...そう、あなたの関数を使用していたと仮定しましたいくつかのクラスを追加したり削除するには

$('.className').removeAttr('click style') 

removeattr機能を使用して、
$('.className').addClass('className').removeClass('newlyaddedClass') 
+0

返信ありがとうございます。私は実際にこのようなクラス 'Previous'を追加し、 'newlyaddedclass'だけを削除する必要があります。 – Pankaj

+1

その場合、jQueryで 'removeClass'メソッドを利用することができます。 – apnerve

+0

正しい。ここにサンプルリンクhttp://api.jquery.com/removeClass/ – Pankaj

0
var Tag = replaceContentInContainer('className'); 
for(var i = 0; i < Tag.length; i++){ 
    Tag[i].removeAttribute('onclick'); 
    Tag[i].removeAttribute('style'); 
} 

更新

すみません、私は間違ってあなたのコードを見ました。あなたはクラスセレクタを使用して、関連する属性を削除する可能性がjQueryのを使用することにより

function replaceContentInContainer(matchClass) { 
    var elems = document.getElementsByTagName('*'), i; 
    for (i in elems) { 
     if ((" " + elems[i].className + " ").indexOf(" " + matchClass + " ") > -1) { 
      elems[i].removeAttribute('onclick'); 
      elems[i].removeAttribute('style'); 
     } 
    } 
} 
+0

動作していません。あなたはあなたの側をチェックすることができます。 'r(var i = 0; i Pankaj

+0

}に 'length 'を表示していません。ランタイムエラーが表示されています。 – Pankaj

+0

今すぐ試してください。 –

1
​$(function(){ 
    $(".className").removeAttr("onclick style");  
});​ 

http://jsfiddle.net/Curt/h6CT9/

+0

なぜdownvoteですか? – Curt

+1

ループを使用する必要はありません。 '$( 'className')。removeAttr( 'onclickスタイル')'で十分です。 – apnerve

+0

あなたのソリューションを考えると、これはより優れた効率的です。これはあなたのJSfiddleのリンクからの更新だけでした。 http:// jsfiddle。net/h6CT9/2/ – Joberror

0

HTML5はgetElementsByClassName()メソッドを定義しています。このメソッドを使用すると、class属性の識別子に基づいてドキュメント要素のセットを選択できます。

var elts = document.getElementsByClassName("className"); 

for(var e = 0; e < elts.length; e++) { // For each element 
    var elt = elts[e]; 
    elt.removeAttribute("style"); 
    elt.removeAttribute("onclick"); 
} 

removeAttribute()
removeAttribute()この要素から名前の属性を削除します。存在しない属性を削除しようとする試みは、黙って無視されます。

setAttribute()
このメソッドは、指定された属性を指定された値に設定します。その名前の属性がすでに存在しない場合は、新しい属性が作成されます。この要素が指定した名前とそうでない場合はfalse を持つ属性を持っている場合

は、hasAttribute()
、このメソッドはtrueを返します。

https://developer.mozilla.org/en/DOM/element.removeAttribute

+1

質問は、要素の属性を削除し、要素を選択しないことに基づいています...解決策を投稿する前に質問をお読みください。 – Joberror

+0

OK、jQueryを使用せずに属性を削除したり設定できるmothodがあります。 – undefined