整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JQuery中html()與text()方法的區別

          常在用JQuery寫ajax時,都會用到html()這個方法,而不用text()這個方法,他們之間有什么區別呢?

          1. html屬性中有兩個方法,一個 有參,一個無參。

          • 無參html():取得第一個匹配元素的html內容。這個函數不能用于XML文檔。但可以用于XHTML文檔,返回的是一個string

          例子:

          html頁面代碼:<div><span>Hello</span></div>

          JQuery代碼:$(“div”).html();

          結果:<span>Hello</span>

          • 有參html(val):設置每一個匹配元素的html內容。這個函數不能用于XML文檔。但可以用于XHTML文檔。返回一個JQuery對象

          例子:

          html頁面代碼:<div></div>

          JQuery代碼:$(“div”).html(“<p>Nice to meet you</p>”);

          結果:<div><p> Nice to meet you</p></div>(html標簽會被瀏覽器識別)

          1. text屬性中有兩個方法,一個有參,一個無參

          • 無參text():取得所有匹配元素的內容。結果是由所有匹配元素包含的文本內容組合起來的文本。返回的是一個string

          例子:

          html頁面代碼:<p><span>Hello<span><div> fine</div></p>

          JQuery代碼:$(“p”).text();

          結果:Hello fine

          • 有參text(val):設置所有匹配元素的文本內容,與 html() 類似, 但將編碼 HTML (將 “<” 和 “>” 替換成相應的HTML實體).返回一個JQuery對象。

          例子:

          html頁面代碼:<div>Paragraph.</div>

          JQuery代碼:$(“div”).text(“<b>Some</b> new text.”);

          結果: <p><b>Some</b> new text.</p> (html標簽不會被瀏覽器識別,而是當作字符串來輸出)

          通過上面的例子,我們知道 html()方法與text()方法的區別就在于對html標簽的識別上不同。

          HTML 的世界里,我們想創建一個面板,包括標題和文本。你可以像這樣創建:

          <div class="panel">
              <div class="panel__header">Title</div>
              <div class="panel__body">
                  Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusantium, sit!
              </div>
          </div>

          通過應用 CSS 和 JavaScript 到這些類,我們可以重復使用這段 HTML。這得益于類的存在,這也是像 Bootstrap 這樣的 CSS 框架多年來運作的方式。 現在讓我們看看 Vue 是如何處理可重用性的: 創建 Vue 組件 首先,我們需要在一個組件中創建一個基礎的面板類。 創建 Panel.vue 組件:

          <template>
          <div>
              <div class="header">Title</div>
              <div class="body">
                  Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusantium, sit!
              </div>
          </div>
          </template>
          
          <script>
          export default {
          
          }
          </script>

          注意,我們可以消除一些類,因為我們的 CSS 將被限制在這個組件內部,同時 header 明確指向面板的頭部。

          現在,不再重復這個 HTML 塊,而是在需要的地方導入這個組件。

          在 App.vue 中添加兩個面板組件

          <template>
          <div>
              <Panel />
              <Panel />
          </div>
          </template>
          
          <script>
          import Panel from './Panel.vue'
          
          export default {
              components: { Panel },
          }
          </script>

          這種關注點的分離非常好,因為我們不再有各種嵌套的 div 容器,而是僅僅使用了 Panel,使得我們的模板非常易于理解。 動態 Props 但是等等!像這樣,標題和內容將始終保持不變。沒錯,所以我們需要讓這些屬性是動態的。 為此,我們需要讓父組件(App.vue)將標題和內容傳遞給子組件(Panel.vue)。子組件通過 props 定義它接受的屬性。 Props 在 Panel.vue 中:

          <template>
          <div>
              <div class="header">{{ title }}</div>
              <div class="body">{{ body }}</div>
          </div>
          </template>
          
          <script>
          export default {
              props: {
                  title: {
                      type: String,
                      required: true,
                  },
                  body: String,
              }
          }
          </script>

          我們的組件接受兩個 props。title 必須是字符串并且是必需的,body 也是一個字符串,但不一定是必需的。

          App.vue 現在可以將 props 傳遞給面板組件:

          <template>
          <div>
             <Panel title="Lorem Ipsum" body="Lorem ipsum dolor sit amet" />
             <Panel title="Something else" />
          </div>
          </template>
          
          <script>
          import Panel from './Panel.vue'
          
          export default {
              components: { Panel },
          }
          </script>

          Props 與普通 HTML 屬性非常相似。

          樣式

          現在,某些面板特別重要,它們的背景顏色需要突出顯示。在 HTML 中,現在我們要為面板添加一個 modifier 類并進行樣式設置。

          讓我們添加類 panel--primary:

          <div class="panel panel--primary">
              <div class="panel__header">Title</div>
              <div class="panel__body">
                  Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusantium, sit!
              </div>
          </div>

          在 Vue 中,這將簡單地成為另一個 prop。

          在 Panel.vue 中:

          <template>
          <div :class="{primary: isPrimary}">
              <div class="header">{{ title }}</div>
              <div class="body">{{ body }}</div>
          </div>
          </template>
          
          <script>
          export default {
              props: {
                  title: "String,"
                  body: String,
                  isPrimary: {
                      type: Boolean,
                      default: false,
                  },
              }
          }
          </script>
          
          <style scoped>
              .primary {
                  background-color: #369; /* you might as well have a global CSS rule for the background color */
              }
          </style>

          我們在 props 列表中添加了 isPrimary prop。注意如何將其默認為 false。現在,只需在實際需要主要面板時傳遞 isPrimary prop。

          在 App.vue 中:

          <template>
          <div>
             <Panel isPrimary title="Lorem Ipsum" body="Lorem ipsum dolor sit amet" />
             <Panel title="Something else" body="Lorem ipsum dolor sit amet" />
          </div>
          </template>
          
          <script>
          import Panel from './Panel.vue'
          
          export default {
              components: { Panel },
          }
          </script>

          傳遞數據作為 Props

          到目前為止,我們只向子組件傳遞了字符串。但是當我們需要傳遞其他數據時會發生什么呢?

          在 App.vue 中,將標題和內容定義為實際數據,并嘗試將其傳遞給子組件。

          <template>
          <div>
             <Panel isPrimary title="title" body="body" />
          </div>
          </template>
          
          <script>
          import Panel from './Panel.vue'
          
          export default {
              components: { Panel },
              data() {
                  return {
                      title: 'Lorem Ipsum',
                      body: 'Lorem ipsum dolor sit amet',
                  }
              }
          }
          </script>

          上述代碼將不起作用。它將字面傳遞字符串 title 和 body,而不是變量的內容。為了修復這個問題,我們必須在 prop 前添加一個前綴。因此,我們只需更改 App.vue 的模板部分:

          <template>
          <div>
             <Panel :title="title" :body="body" />
          </div>
          </template>

          實際上,你可以簡化以上模板,簡單地使用:

          <template>
          <div>
             <Panel :title="title" :body="body" />
          </div>
          </template>

          事實上,v-bind 允許任何 JavaScript 表達式。 總結 通過 Vue 組件,我們實現了 HTML 中面板的重用,并將其做了進一步的改進,使得標題和內容可以動態傳遞。通過 props 和 slots 的使用,我們能夠更加靈活地構建和組織我們的界面組件。

          先看我們要實現怎么一個效果,效果視頻如下:

          <script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

          分析

          1.全選和取消全選做法:讓下面所以的復選框的checked屬性跟隨全選按鈕即可

          2.下面復選框需要全部選中,上面全選才能選中做法:給下面所有復選框綁定點擊事件,每次點擊,都要循環查看下面所有的復選框是否有沒選中的,如有有一個沒選中的,上面全選就不選中。

          3.可以設置一個變量,來控制全選是否選中。

          代碼


          主站蜘蛛池模板: 欲色影视天天一区二区三区色香欲| 亚洲AV无码一区二区一二区| 亚洲av无码一区二区三区网站| 中文字幕精品一区影音先锋 | 亚洲福利视频一区| 国产一区二区免费在线| 麻豆一区二区免费播放网站| 色国产精品一区在线观看| 在线精品亚洲一区二区三区| 国产无吗一区二区三区在线欢| 无码丰满熟妇一区二区| 亚洲一区二区三区在线观看蜜桃 | 午夜AV内射一区二区三区红桃视| 日韩内射美女人妻一区二区三区 | 日本精品视频一区二区三区| 精品欧美一区二区在线观看 | 内射女校花一区二区三区| 精品无码人妻一区二区三区不卡| 美女视频黄a视频全免费网站一区| 国产综合视频在线观看一区| 理论亚洲区美一区二区三区 | 午夜精品一区二区三区在线视| 国产精品区一区二区三| 成人免费视频一区二区| 亚洲一区二区三区高清不卡| 99久久无码一区人妻a黑| 亚洲无圣光一区二区| 日韩免费一区二区三区在线| 99国产精品欧美一区二区三区| 四虎成人精品一区二区免费网站| 无码精品不卡一区二区三区| 麻豆视频一区二区三区| 无码8090精品久久一区| 在线精品动漫一区二区无广告 | 正在播放国产一区| 精品少妇一区二区三区在线| 久久亚洲AV午夜福利精品一区| 亚洲综合无码精品一区二区三区| 国产亚洲情侣一区二区无码AV | 精品国产免费一区二区| 国产在线精品一区二区三区不卡 |