2016-12-21 3 views
0

2つのクラスを持つ要素で2番目のクラスのみを選択する方法が必要なので、後で使用するためにURLを渡すことができます。私は両方のクラスを取得する関数を作成しましたが、私はclass2しか必要としません。彼らはファーストクラスをストライプし、2番目のクラスのみを残す方法です。あるいは、彼らは第二のクラスだけを選択する方法です。どのように要素がjavascriptにある2番目のクラスのみを選択しますか?

バニラジャバスクリプトを使用してこの問題に関する質問は見つかりませんでした。

<div class="class1 class2></div> 
<script> 

function get2ndClass(element) { 

    var secondClass = element.class; 
    return secondClass; 

} 
+4

いっても5件の回答の少なくとも一つ下に、これを行う方法を示す必要があります、私はそれが悪い考えだと思う。一般的に、HTML要素のクラスの* order *は意味を持ちません。クラスを意味のあるパラメータとして使用する場合は、 'data-'属性を使用する必要があります。 (つまり、あなたはURLでそれを使用しています) – user3297291

+0

1)クラスの順序は保証されていません。したがって、あなたのHTMLが 'class =" class1 class2 class3 "'と言っても、 'element.classList'はそれらを別の順序で返すことができます。 2) 'class'はデータを格納するためのものではありません。 – mhutter

答えて

-1

使用は、最初にすべてのアレイに第2項目を返し、その後、少なくとも2つのクラスが存在するかどうかをチェックするclassList配列プロパティを使用し

console.log("class1 class2".split(" ").pop());

+2

要素が2つ以上のクラスを持つ場合、これは機能しません。 – Matt

+0

@matt '2つのクラスを持つ要素の2番目のクラスのみを選択します'前に質問を読むdownvote – Mahi

+1

@Mahi、あなたの要件は何でも、*決して*書く必要はありません。0、1またはNを常に書きます。 –

2

を分割します。

function get2ndClass(element) { 
    return (element && element.classList.length>1) ? element.classList[1] : null; 
} 

あなたがclassListをサポートしていない古いブラウザをサポートしている場合、あなたは追加の行が必要です:

function get2ndClass(element) { 
    var classList = (element) ? element.className.split(" ") : null; 
    return (classList && element.classList.length>1) ? element.classList[1] : null; 
} 
+0

'classList.item(index)'は要素がなく、 'null'でなければ' undefined'を返します。 – Andreas

-1

使用classList

function get2ndClass(element) { 
 
    return element.classList[1] || false; 
 
} 
 

 
var $div = document.querySelector('div') 
 
var secondClass = get2ndClass($div); 
 

 
console.log(secondClass);
<div class="firstClass secondClass"></div>

0

を使用できますはclassListサポートの必要は、ちょうどclass属性要素を分割しない要素

return element.classList.length > 1 ? element.classList[1] : ""; 
0

に割り当てられているクラスを取得します

function get2ndClass(elt) { 
 
    return elt.getAttribute('class').split(' ')[1] || null; 
 
} 
 
console.log(get2ndClass(document.getElementsByTagName('div')[0]))
<div class="class1 class2" >

関連する問題