実行時にプラグインによって(一部)設定されているDOMがあるため、完全に制御できません。 HTMLで作成する最初のオブジェクトは、というオブジェクトで、bootstrap-select
というプラグインが兄弟として<button>
を作成しています。この<button>
には、子要素<span>
(プラグインによっても作成されています)があります。テキストを変更したいのですが、この<span>
要素です。Javascript - ボタンの下にあるspanのinnerHTMLを設定する
ボタン自体の背景色も変更していますが、これは機能します。スパンのテキストを更新するために関数に1行または2行を追加するだけでいいです。ここで
は(灰色の部分は、私が設定しなければならないものである)DOMの関連する部分のスクリーンショットです:
そしてここでは私のコードです。これはもともとボタンの背景色を設定するために書かれたもので、その程度までは正しく動作します。私はちょうど同様、テキストを設定し、それを展開する必要があります。
function setColorForSelect(elem, col) {
// this will change the background color of the <select> object just changed to match the selection
// this is necessary because bootstrap-select imposes a complex DOM structure on the <select> item
// (there is a <button> that is what is being displayed, so that is the object whose background color needs
// to be changed, not the <select> object itself)
$(elem).siblings().each(function() {
var _this = $(this);
if(_this.is(":button")){
_this.css('background-color', col);
$(this).children(":first").innerHTML = col; //<-- THIS IS THE LINE THAT DOESN'T WORK!
return false;
}
});
}
これは、すべてのエラーを投げていないが、それは私が見ることができる何も変更されていません。この<span>
への参照を取得して、テキストを変更するにはどうすればよいですか?ありがとうございました!
私はあなたの第2の考えが働いたと思います。テキストが1秒間変化するのを見ることができます。そして、それは0番目の
@Randallしかし、私はこのルートに行くのではなく、プラグインのドキュメントを見て、スパンに値を設定する方法を見つける必要があると思います。私はプラグインがその機能を持っていると確信しています。何をしようとしているのは回避策です。最後のオプションとしてこれを残してください –
私は同意します。私は検索してきましたが、ドキュメントには何も見つかりませんでした。私が見つけることができる最も良いことは、本質的に私がやっているようにDOMツリーを横断することを示唆するこの記事です。 http://stackoverflow.com/questions/13437446/how-to-display-selected-item-in-bootstrap-button-dropdown-title – Alex