2011-11-04 91 views
0

我該怎麼做? 我的html結構看起來像這樣 編輯:我已經更新到html,所以它符合規則。jquery div是通過id選擇的,選擇類的值

<td id="1" class="LinkWrap"><a href="" class="link">link</a></td> 

我用這個代碼:

$(".link").click(function() { 
$(this).parent(); 
//some ajax code 
}); 

要選擇由ID LinkWrap的TD,但我需要的類的價值, 類的價值是由PHP & & MySQL和牽強是我提取的元素的id。因此,價值不是一個常數,我不能只說選擇類與價值1它可能是2或5932.

我需要這個值給我的ajax腳本,所以我可以插入時,用戶單擊該鏈接。 如果theres更好的方法,請讓我知道:)

+0

讓你在使用ID類和類作爲標識?我想知道使用類來識別_single_元素的邏輯,而您並未提及您的ID如何更改。 –

+0

嗯..也許我寫了一些錯誤的... 以及我已經編輯了我的腳本從重要的是,我存儲的數據裏面的id而不是類前:我這樣做是因爲我想在用戶點擊鏈接時將其插入數據庫,並且我想知道用戶按下鏈接的確切位置:) – Flaashing

回答

3

除了不建議開始使用數字類名稱的事實。使用attr來獲取類屬性。

$(".link").click(function() { 
    alert($(this).parent().attr('class')); 
}); 

編輯:您最好使用其他人聲明的數據屬性。

HTML

<td data-rowid="1" class="LinkWrap"><a href="" class="link">link</a></td> 

的Javascript

$(".link").click(function() { 
    alert($(this).parent().data('rowid')); 
}); 
+0

謝謝! btw我可以寫創建另一個數據rowid?所以我有data-rowid和data-rowuser? – Flaashing

+0

是的,你當然可以。 –

+0

非常感謝很多:) – Flaashing

0

我想你需要如下。

$(this).parent().attr('class'); 

編輯:同樣也是他人陳述的數據屬性。

3

這聽起來像你在做class屬性中的數據存儲。班級不能以數字開頭,這意味着您的無效使用可能會導致在某些瀏覽器中出現故障。您最好將jQuery的data()data-*屬性結合使用。

+0

ive決定把數據放入ID,而不是 ,但這是如何工作的?編號愛知道一個更好的方式比在ID中存儲數據:) – Flaashing

+1

ID的不能以數字開頭。 –

1

Interstellar_Coder和wilbbe01在執行中都是正確的,但是代碼中有一件東西會咬你。 td有一個ID,如果重複,可能會導致您引用問題。 id屬性在整個DOM實例中應該是唯一的,以避免在不同瀏覽器中出現非常不可預知的結果。

除了ceejayoz解決方案是最好的。

0

因爲,正如我在我的評論中提到,看來你混了類和ID,並避免ceeyajoz提到的問題,我建議使用另一種方法:

$('.link').click(function(e){ 
    var the_id = $(this).closest('td').attr('id'); //or parent(). 
    $.ajax({ 
     url: 'http://www.mysite.com/index.php?page_id='+the_id, 
     success:function(response){ 
     alert(response); 
     } 
    }); 
    e.preventDefault(); 
}); 

而在你的HTML:

<td class="LinkWrap" id="td_1"><a href="" class="link">link</a></td> 

而且在你的PHP:

$id = $_GET['page_id']; 
$id = str_replace('td_','',$id); 
echo $id; 
+0

謝謝:)幾乎相同的jquery代碼,我想通了。感謝您的額外的PHP,沒想到:( 所有其他代碼的工作,以及謝謝你! – Flaashing