2016-05-10 6 views
1

querySelectorAllに問題があります。 itemが言った要素でtarget値と全く同じ記述されている場合、JavaScript - querySelectorAllとlower/uppercase

Array.prototype.forEach.call(buttons, (btn) => { 
    this.setItemActive(target); 
}); 

setItemActive(item) { 
    _.addClass(document.querySelectorAll(`[title="${item}"]`)[0], this.activeClass); 
} 

そして、それは動作します:私はこのようにそれを使用します。しかし、私はボタンにtext-transformを使用していますが、問題を引き起こしています。私は両方にtoLowerCase()を追加しようとしましたが、これは役に立ちませんでした。私に何ができる?

答えて

0

私の場合、タイトルはこのような状況では非常に快適ではありません。一種の識別者を考えてみてください。


命題:あなたのHTMLコード内

、追加のATTRを行い、一種の:

<a title="WrIght As You Wish" data-title="strictlowercasetitle" >Your info with title</a> 

とあなたのJSで:

Array.prototype.forEach.call(buttons, (btn) => { 
    this.setItemActive(target); 
}); 

setItemActive(item) { 
    // make item lower case 
    _.addClass(document.querySelectorAll(`[data-title="${item.toLowerCase()}"]`)[0], this.activeClass); 
} 
+0

まあ

function _setItem(item){ console.log(item) var m = document.querySelectorAll('a[title='+item+']')[0]; console.log(m) } _setItem("WrIght"); 

チェックあなたに参考になる 希望は、あなたの答えは、 'タイトルのスラグであるid'を追加する方法を記述するために私にインスピレーションを得ました。ありがとう! ;-) –

0

私はsetItemActive機能を試してみましたこれを関数の下に書いた。これは、このjsFiddle

関連する問題