首先我來介紹一下我遇到的問題 1.當有一個table表包含了<tr>標簽,<td>標簽,大致可以認為是這樣的: <tr> <td> @scene.ID </td> <td> @scene.SceneName </td> <td> @scene.QRUrl </td> <td> @scene.Loca ...
首先我來介紹一下我遇到的問題
1.當有一個table表包含了<tr>標簽,<td>標簽,大致可以認為是這樣的:
<tr> <td> @scene.ID </td> <td> @scene.SceneName </td> <td> @scene.QRUrl </td> <td> @scene.LocalUrl </td> <td> <!--如果有圖片,展示圖片,沒有圖片生成圖片--> <!--判斷localUrl(本地伺服器路徑)是否為空,如果為空,表示沒有生成,如果不為空表示已經生成--> @if (!string.IsNullOrWhiteSpace(scene.LocalUrl)) { <!--圖片不為空,展示圖片地址--> <img src="@scene.LocalUrl" style="width:200px; height:100px"/> } else { <!--圖片為空,生成圖片--> <a sceneid="@scene.ID" href="#" onclick="build(this);">生成</a> } </td> </tr>View Code
2.這裡有一個onclick事件,我要做的就是點擊“生成”鏈接,要找到QRUrl的<td>標簽和LocalUrl的<td>標簽
首先我們點擊這個a標簽,執行jQuery中的點擊事件
function build(sender){ var jqSender = $(sender); + +} 這裡把js對象通過 $()轉變成了jquery對象,下麵的內容放在兩個“+”之間。
var sceneid = jqSender.attr('sceneid'); //attr可以找到對象的屬性的值,這裡我們找到了sceneid這個屬性的值
我需要拿到td標簽,首先我應該知道是在哪一行,這跟定位是一樣的。比如:在北京有一條南京路1號,在成都也有一條南京路1號,你問我在哪兒,我告訴你我在南京路1號,你能確定我是在北京還是成都嗎,所以我們應該要定位,說我們在成都的南京路1號。
這裡最好也要用eq()來獲取某一行,如果頁面代碼需要修改,這會很麻煩。比如你要記我家在哪裡,你需要知道的是街道、門牌號,你只知道是這條街第一座房子是我家,萬一別人在這新增了一座房子,那就不是第一家了(比喻有點不恰當,但是電腦就是這麼死板)。
所以,我們給這個tr設一個id,給QRUrl和LocalUrl設一個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> <!--如果有圖片,展示圖片,沒有圖片生成圖片--> <!--判斷localUrl(本地伺服器路徑)是否為空,如果為空,表示沒有生成,如果不為空表示已經生成--> @if (!string.IsNullOrWhiteSpace(scene.LocalUrl)) { <!--圖片不為空,展示圖片地址--> <img src="@scene.LocalUrl" style="width:200px; height:100px"/> } else { <!--圖片為空,生成圖片--> <a sceneid="@scene.ID" href="#" onclick="build(this);">生成</a> } </td> </tr>View Code
那在jQuery裡面就可以這樣去找:
<script type="text/javascript"> function build(sender) { var jqSender = $(sender); var sceneid = jqSender.attr('sceneid'); //找到指定行類名為wxurl-col的td標簽 $('tbody tr[sceneid=' + sceneid + '] td.wxurl-col') //找到指定行類名為localurl-col的td標簽 $('tbody tr[sceneid=' + sceneid + '] td.localurl-col') //找到點擊事件的a標簽 jqSender } </script>View Code
td標簽只是找出來了,並沒有使用。
方法就是這樣,給元素加“坐標”,為什麼分別是id和類名,首先有很多行,要唯一確定只有加id,當行確定了,那列就可以是id也可以是class,建議用class,便於我們css的管理
註:此篇隨筆只供參考使用,而且也有很多小瑕疵,最主要的不是代碼,邏輯才是最重要的。