0

jQuery では、新しい要素を作成し、それらのプロパティを 1 つのステップで定義できます。

$("<div>", {title: "Hey there!", text: "I'm a DIV!"});

これにより、次が生成されます。

<div title="Hey there!">I'm a DIV!</div>

既存の要素で同じことを行う方法はありますか? 以下は機能しません。

$("#theDiv", {title: "Hey there!", text: "I'm a DIV!"});
4

1 に答える 1

2

物事はかなり簡単であることがわかります。jQueryはこれに使用.attr()します。

$("#theDiv").attr({title: "Hey there!", text: "I'm a DIV!"}, true);

2番目のパラメータがに設定されていることに注意してくださいtrue。これにより、jQueryは新しく作成された要素に使用するのと同じメカニズムを使用します。

関数パラメーターでさえ期待どおりに機能します。

$("#theDiv").attr({
    title: "Hey there!", 
    text: function () { return "some calculated value"; }
}, true);​

このjsFiddleを参照してください。

したがって、これはイベントバインディング、CSSの変更、およびjQueryが実行できるその他すべてのことでも機能します。

$("#theDiv").attr({
    title: "Hi there", 
    text: function (i, v) { return v.replace(/not /, ""); },
    mouseover: function () { $(this).css({color: "red"}) },
    mouseout: function () { $(this).css({color: ""}) },
    css: { fontSize: "20pt", fontStyle: "italic" }
}, true);​

このjsFiddleを参照してください。

これは文書化されていないため、リリースノートに記載されていなくてもドットリリースで変更される可能性がありますが、変更される可能性は低く、jQueryをアップグレードするときに簡単にテストできます。

于 2012-04-30T06:17:21.413 に答える