2016-07-06 5 views
1

私はSalesforce Apexを初めて使い、いくつかのニュアンスで少し苦労しています。私の問題はknowledge:categoryListまたはknowledge:articleListのようなSalesforceのすべてのコンポーネントが、レンダリングされるときに余分なspan要素でラップされていることです。以下のようなもの:Salesforceを避ける<span>要素でラップされたApexコンポーネント

<ul> 
    <span> 
     <li>One</li> 
     <li>Two</li> 
     <li>Three</li> 
    </span> 
</ul> 

は、少なくとも意味的に間違っているが、Bootstrapのようなライブラリを使用した場合、さらにより多くの彼らは、マークアップを壊しています。 これには解決策がありますか?あるいは、私は間違っているかもしれません。

UPD 小さな例:

この...

<ul class="nav nav-tabs" role="tablist"> 
    <knowledge:categoryList categoryVar="category" categoryGroup="Help" rootCategory="Using_{!selectedCategory}" level="1"> 
     <li role="presentation"> 
      <a href="#{!category.name}" aria-controls="basics" role="tab" data-toggle="tab">{!category.label}</a> 
     </li> 
    </knowledge:categoryList> 
</ul> 

は...

<ul class="nav nav-tabs" role="tablist"> 
    <span id="j_id0:j_id1:j_id37"> // <!-- how to remove this wrapper? --> 
     <li role="presentation"> 
      <a href="#" aria-controls="basics" role="tab" data-toggle="tab">One</a> 
     </li> 
     <li role="presentation"> 
      <a href="#" aria-controls="basics" role="tab" data-toggle="tab">Two</a> 
     </li> 
     <li role="presentation"> 
      <a href="#" aria-controls="basics" role="tab" data-toggle="tab">Three</a> 
     </li> 
    </span> <!-- ??? --> 
</ul> 

答えて

0

[OK]を、私は小さなjQueryのスニペットでこの問題を解決するために管理してきました:APIを使用していない場合は

(function ($) { 
    $(document).ready(function() { 
     var allSpansAndDivs = $('span, div'); 
     $.each(allSpansAndDivs, function (index, elem) { 
      if ($(this).attr('id') != undefined && $(this).attr('id').indexOf('j_') > -1) { 
       $(this).children().first().unwrap(); 
      } 
     }); 
    }); 
})(jQuery); 
1

が現在どのように設定する能力がありません...としてレンダリングされますVisualforceタグはページにレンダリングされます。

SFでフロントエンド側のコントロールを使用する場合は、Visualforceタグを使用しないように任意のJS/CSSライブラリ/フレームワークで手動で開発する必要があります。データを処理し、サーバー側と対話するには、Visualforce Remote ObjectsまたはJavaScript RemotingactionFunctionsを使用できます。

+0

だから、私の場合は最良の選択肢は何ですか? APEXが挿入した 'span'要素を尊重するためのブートストラップCSSの修正? – markoffden

+0

Bootstrapにはあまり馴染んでいませんが、何か他のものに影響を与えるかどうかはわかりませんが、知識のないこのページを書き換えたくない(またはできない)場合は、categoryListレンダリング後のDOMは唯一の解決策です。 –

関連する問題