フォーム入力要素があり、そのtitle属性を変更したい。これは簡単なことである必要がありますが、どういうわけか私はこれを行う方法を見つけることができません。これはどのように行われていますか、またどのようにしてこれを実行するかを検索する必要がありますか。
コードを書く前に、属性とプロパティの違いについて説明しましょう。属性はあなたの中の要素に適用する設定ですHTMLマークアップ;次にブラウザはマークアップを解析し、propertiesを含むさまざまな型のDOMオブジェクトを作成して、属性の値で初期化します。単純なHTMLElement
などのDOMオブジェクトでは、attributesコレクションではなく、propertiesコレクションを常に使用することをお勧めします。
現在のベストプラクティスは、属性がカスタムであるか、それを補完する同等のプロパティがない場合を除き、属性の使用を避けることです。 title
は確かに多くのHTMLElement
上で読み書きプロパティとして存在するので、それを利用するべきです。
属性とプロパティの違い ここ または ここ についてもっと読むことができます。
これを念頭において、そのtitle
...を操作しましょう。
title
プロパティを取得または設定しますwithout jQuerytitle
はパブリックプロパティなので、プレーンJavaScriptを使用してそれをサポートする任意のDOM要素に設定できます。
document.getElementById('yourElementId').title = 'your new title';
検索はほぼ同じです。ここで特別な何もない:
var elementTitle = document.getElementById('yourElementId').title;
あなたが最適化の方法であれば、これがタイトル変更の最も早い方法になるでしょう。
title
propertyを取得または設定する(v1.6 +)jQueryは、プロパティを取得および設定するためにv1.6で新しいメソッドを導入しました。要素にtitle
プロパティを設定するには、次のようにします。
$('#yourElementId').prop('title', 'your new title');
タイトルを取得したい場合は、2番目のパラメータを省略して戻り値を取得します。
var elementTitle = $('#yourElementId').prop('title');
JQueryの prop()
APIドキュメント を調べてください。
あなたが本当にプロパティを使用したくない場合、またはv1.6より前のバージョンのjQueryを使用している場合は、次のように読む必要があります。
title
attributeを取得または設定します(バージョン<1.6)。以下のコードでtitle
attributeを変更できます。
$('#yourElementId').attr('title', 'your new title');
それともそれを取得する:
var elementTitle = $('#yourElementId').attr('title');
JQueryの attr()
APIドキュメント を調べてください。
Jqueryのuiモーダルダイアログでは、この構文を使う必要があります。
$( "#my_dialog" ).dialog( "option", "title", "my new title" );
私は信じている
$("#myElement").attr("title", "new title value")
または
$("#myElement").prop("title", "new title value")
トリックをする必要があります...
フォーマットは嫌いですが、 jQuery Docs にすべてのコア関数があると思います。
もう1つの選択肢は、jQueryオブジェクトからDOM要素を取得し、それに標準のDOMアクセサを使用することです。
$("#myElement")[0].title = "new title value";
他の人が述べたように、 "jQueryのやり方"はattr()メソッドを使うことです。 attr() こちら のAPIドキュメントを参照してください。
div
を作成し、それにtitle
を追加しようとしている場合。
やってみる
var myDiv= document.createElement("div");
myDiv.setAttribute('title','mytitle');
jqueryTitle({
title: 'New Title'
});
最初のタイトルの場合:
jqueryTitle('destroy');