3 に答える
2
コードのこの部分でthis
は、オブジェクトではなく関数自体を参照します。
$('.accordion h2, .accordion h3').each(function () {
$(this).html(function() {
var headertext = '<a href="#">' + $(this).html() + '</a>'; // <-- HERE
return headertext;
});
});
代わりにこれを使用してください:
$('.accordion h2, .accordion h3').each(function () {
var that = this;
$(this).html(function() {
var headertext = '<a href="#">' + $(that).html() + '</a>';
return headertext;
});
});
これは、それを示すJSFIDDLEです
于 2012-08-01T09:18:51.200 に答える
1
アコーディオンのスペルが間違っているようです:
次のように変更します。
$('.accordian h2, .accordian h3').each(function () {
$(this).html(function() {
var headertext = '<a href="#">' + $(this).html() + '</a>';
return headertext;
});
});
ここでjsフィドルを参照してくださいhttp://jsfiddle.net/HukJE/4
于 2012-08-01T09:21:10.117 に答える
1
編集: 申し訳ありませんが、wrap() の場合は代わりに wrapInner() です。
三つのこと:
1) .each() は必要ありません。単純に:
$('.accordion h2, .accordion h3').wrapInner('<a href="#"></a>');
2) HTML にタイプミスがあります:
<div class="accordian"> <-- accordion?
3) 「h2 a」クリック イベントに「parent()」がありません。
$(".accordion h2 a").click(function() {
$(this).next(".levelOne").slideToggle("slow"); <-- actual
$(".accordion h2 a").click(function() {
$(this).parent().next(".levelOne").slideToggle("slow"); <-- with parent()
そして、それは動作します:)
jsFiddle: http://jsfiddle.net/fy2uM/2
于 2012-08-01T09:23:05.127 に答える