0

head(私の限られた理解で)それをつまずくのではなく、次の3行のコードでvarに何が起こっているのか(そしてその使用法)を説明してください。

<script type="text/javascript">
  var head = $("thead#tHead1").clone().removeAttr("class");
  $(head).find("#hRow2").remove();
  head = $(head).wrap("<thead>").parent().html();

編集1行目に設定し、別の値にヘッドを割り当てた$(head)後、コードの2行目 で使用することの意味は何ですか?head =

私が学んだことに対する答えを見てください。

4

3 に答える 3

2
// Find an element, make a copy of it, and remove it's class
var head = $("thead#tHead1").clone().removeAttr("class");

// Within the cloned element (not on the DOM yet),
// Find an element within and then remove that found element.
$(head).find("#hRow2").remove();

// Wrap the cloned element in another element, giving it a parent.
// Traverse to that parent and return it's html content
head = $(head).wrap("<thead>").parent().html();

$(head)ここではは必要ないことに注意してください。それは単にhead代わりになる可能性があります。要素を jQuery でラップされたオブジェクトに変換する必要はありません。


また、これはひどいコードです。DOMが想定されていることを何でも行うのは、DOMの厄介なハックです。代わりに、ある種のテンプレート エンジンを使用して、入力データに基づいて必要に応じて新しい DOM フラグメントを生成する必要があります。

于 2013-02-07T21:46:54.293 に答える
1

次の行について説明します。

  1. ちなみに、属性<script>を必要としない開始タグ。type

  2. <thead>の ID を持つ要素を見つけ、tHead1子ノードを含む要素を複製しclass、新しい要素から属性を削除してから、新しい要素をhead変数に割り当てます。

  3. hRow2前に作成した要素内にある id を持つ要素を削除します。

  4. 前に作成した要素を要素でラップし、その要素の innerHTML と等しくなるように変数をthead再割り当てします。head

于 2013-02-07T21:49:38.757 に答える
0

コメントとさらなる研究から、これは次のように書くほうがよいことがわかりました。

var head = $("#tHead1").clone().removeAttr("class");   // clean & clone the head  
head.find("#hRow2").remove();                          // remove 2nd row
head = head[0].outerHTML;                              // get 'only' the desired html

私自身の質問に答えるには(用語がわかりません)、head =この場合、最後に必要なのは表示しないこと[object Object]です。オブジェクトの代わりに、目的の HTML (ヘッダー行) をコードの数行後に使用するように割り当てます。console.log(head)この教訓を明らかにした。行 1 と行 2 を連鎖できない理由もわかりません。

この演習の上位の目的は、印刷する前に大きなテーブルを別々の (45 行) テーブルに分割し、次のページで 3 つのヘッダー行のうち 2 つだけを表示し、サーバーに接続したりページをリロードしたりしないようにすることです。これに対する私の方法は、ページの終わりのクラスを n 番目の行に追加し、上記を実行してから、その行の後に新しいテーブルとヘッダーを appendTo() することです。

于 2013-02-08T14:05:09.593 に答える