首先我來介紹一下我遇到的問題
1.當(dāng)有一個table表包含了<tr>標(biāo)簽,<td>標(biāo)簽,大致可以認(rèn)為是這樣的:
<tr> <td> @scene.ID </td> <td> @scene.SceneName </td> <td> @scene.QRUrl </td> <td> @scene.LocalUrl </td> <td> <!--如果有圖片,展示圖片,沒有圖片生成圖片--> <!--判斷l(xiāng)ocalUrl(本地服務(wù)器路徑)是否為空,如果為空,表示沒有生成,如果不為空表示已經(jīng)生成--> @if (!string.IsNullOrWhiteSpace(scene.LocalUrl)) { <!--圖片不為空,展示圖片地址--> <img src="@scene.LocalUrl" style="width:200px; height:100px"/> } else { <!--圖片為空,生成圖片--> <a sceneid="@scene.ID" href="#" rel="external nofollow" rel="external nofollow" onclick="build(this);">生成</a> } </td> </tr>
2.這里有一個onclick事件,我要做的就是點擊“生成”鏈接,要找到QRUrl的<td>標(biāo)簽和LocalUrl的<td>標(biāo)簽
首先我們點擊這個a標(biāo)簽,執(zhí)行jQuery中的點擊事件
function build(sender){ var jqSender = $(sender); + +} 這里把js對象通過 $()轉(zhuǎn)變成了jquery對象,下面的內(nèi)容放在兩個“+”之間。
var sceneid = jqSender.attr('sceneid'); //attr可以找到對象的屬性的值,這里我們找到了sceneid這個屬性的值
我需要拿到td標(biāo)簽,首先我應(yīng)該知道是在哪一行,這跟定位是一樣的。比如:在北京有一條南京路1號,在成都也有一條南京路1號,你問我在哪兒,我告訴你我在南京路1號,你能確定我是在北京還是成都嗎,所以我們應(yīng)該要定位,說我們在成都的南京路1號。
這里最好也要用eq()來獲取某一行,如果頁面代碼需要修改,這會很麻煩。比如你要記我家在哪里,你需要知道的是街道、門牌號,你只知道是這條街第一座房子是我家,萬一別人在這新增了一座房子,那就不是第一家了(比喻有點不恰當(dāng),但是計算機就是這么死板)。
所以,我們給這個tr設(shè)一個id,給QRUrl和LocalUrl設(shè)一個class,代碼如下:
<tr sceneid="@scene.ID"> <td> @scene.ID </td> <td> @scene.SceneName </td> <td class="wxurl-col"> @scene.QRUrl </td> <td class="localurl-col"> @scene.LocalUrl </td> <td> <!--如果有圖片,展示圖片,沒有圖片生成圖片--> <!--判斷l(xiāng)ocalUrl(本地服務(wù)器路徑)是否為空,如果為空,表示沒有生成,如果不為空表示已經(jīng)生成--> @if (!string.IsNullOrWhiteSpace(scene.LocalUrl)) { <!--圖片不為空,展示圖片地址--> <img src="@scene.LocalUrl" style="width:200px; height:100px"/> } else { <!--圖片為空,生成圖片--> <a sceneid="@scene.ID" href="#" rel="external nofollow" rel="external nofollow" onclick="build(this);">生成</a> } </td> </tr>
那在jQuery里面就可以這樣去找:
<script type="text/javascript"> function build(sender) { var jqSender = $(sender); var sceneid = jqSender.attr('sceneid'); //找到指定行類名為wxurl-col的td標(biāo)簽 $('tbody tr[sceneid=' + sceneid + '] td.wxurl-col') //找到指定行類名為localurl-col的td標(biāo)簽 $('tbody tr[sceneid=' + sceneid + '] td.localurl-col') //找到點擊事件的a標(biāo)簽 jqSender } </script>
td標(biāo)簽只是找出來了,并沒有使用。
方法就是這樣,給元素加“坐標(biāo)”,為什么分別是id和類名,首先有很多行,要唯一確定只有加id,當(dāng)行確定了,那列就可以是id也可以是class,建議用class,便于我們css的管理
注:此篇隨筆只供參考使用,而且也有很多小瑕疵,最主要的不是代碼,邏輯才是最重要的。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com