PDA

View Full Version : پیدا کردن محتویات اولین TD



tux-world
شنبه 24 دی 1390, 02:02 صبح
سلام. من یه جدول دارم که به شکل زیر هستش هر کاری میکنم متن حاوی اولین td از tr ها رو نمیتونم بدست بیارم

<table>
<tr><td>foo</td>
<td><a class="Row">CLICK</a></td></tr>
<tr><td>bar bar</td>
<td><a class="Row">CLICK</a></td></tr>
<tr><td>bazmati</td>
<td><a class="Row">CLICK</a></td></tr>
</table>
اینو نوشتم ولی همه اونا رو پیدا میکنه:
<script type="text/javascript">
$(document).ready(function() {
var myText = $("#Row").parent().find(':first').text();
$('.deleteRowButton').click(function(){
alert(myText);
});
});
</script>

mehdi.mousavi
شنبه 24 دی 1390, 08:54 صبح
سلام.
می تونید بدین شکل عمل کنید:

$(function() {
$("tr>td>a.Row").click(function(){
var text = $(this).parent().prev().text();
alert(text);
});
});


موفق باشید.

tux-world
شنبه 24 دی 1390, 09:35 صبح
ممنون آقای موسوی. این رو هم پیدا کردم چون تعداد td هام اصلا معلوم نبود نمیشد از این کد استفاده کرد. بعد از چند ساعت درگیری بلاخره اینو که برای تعداد نامحدود td ها هستش پیدا کردم. باز هم ممنونم

alert( $(this).closest('tr').children('td:eq(0)').text()) ;

mehdi.mousavi
شنبه 24 دی 1390, 13:18 عصر
این رو هم پیدا کردم چون تعداد td هام اصلا معلوم نبود نمیشد از این کد استفاده کرد. بعد از چند ساعت درگیری بلاخره اینو که برای تعداد نامحدود td ها هستش پیدا کردم.

سلام.
بسیار خوب، کاش در همون پست اول ذکر میکردید که تعداد td ها مشخص نیست... در هر حال، فکر میکنم کدی رو که نوشته اید بدین شکل تغییر بدید، Performance بالاتری داشته باشه:

$(function () {
$("tr>td>a.Row").click(function () {
var text = $(this).parent().siblings('td:first').text();
alert(text);
});
});


چرا؟ چون closest باید دونه به دونه Element ها رو بررسی کنه تا به اون Element ای که شما نیاز دارید برسه، اما، متود parent، یک ضرب با استفاده از property ی parentNode به نود پدر میرسه (که در مثال شما میشه td ای که حاوی اون anchor هستش)، سپس، اولین td در siblings اون element (که میشه اولین td در اون شاخه) رو به شما میده. در صورتیکه در کد شما، باید ابتدا children های اون selector انتخاب بشن، که خود متود children داره siblings رو call میکنه. بنابراین با این تغییر کوچک، Performance این بخش از کد شما بهتر خواهد شد.

موفق باشید.

tux-world
شنبه 24 دی 1390, 21:14 عصر
ممنون جناب آقای موسوی. راستش این رو برای دیتاگرید میخوام طراحی کنم. با دیتاگریدایی که آماده هستند نتونستم سرور سایدشونو برای ادیت یا ادد و یا حذف به کار ببرم. کدی که شما دادید بلی رفرنس بالایی داره.