2010-01-19 5 views
3

У меня есть следующая дилемма: Мой HTML как таковой (это существует в/приложение PL SQL.):JQuery - получить значение TD рядом с кнопкой радио

<table id="search_result_table"> 
<tr> 

<input type=radio name="pv_select" value="'||lv_spriden_id||'"/> 
<font face="Calibri" size=3><td id="spriden_id"  name="spriden_id">'||lv_spriden_id||'</td></font>' 
<font face="Calibri" size=3><td id="last_name" class="c_last_name"  name="last_name">'||lv_spriden_last_name||'</td></font> 
<font face="Calibri" size=3><td id="first_name" class = "c_first_name"  name="first_name">'||lv_spriden_first_name||'</td></font> 
</tr> 
</table> 

Я могу получить в выбранное значение радио кнопки с помощью:

$("input[name=pv_select]:checked").val() 

Однако, я хотел бы иметь возможность получить значение «last_name» столбец ячейки (который существует в таблице рядом с кнопкой радио). Как я могу получить это значение (для выбранной строки с помощью переключателя) через jQuery?

Я пытался несколько вещей, но ни один не работает:

$("input[name=pv_select]:checked").parent().siblings("td:eq(1)").text());  

Спасибо заранее.

+0

Может быть, вы можете опубликовать созданный источник, потому что ваш пост не имеет никакого смысла. – jerone

+0

Ваш html-фрагмент не похож на html, что это? – JonoW

+0

HTML существует в приложении PL/SQL – Anonymous

ответ

2

HTML недействителен; не уверен, что это сбрасывает ваше дерево DOM и, таким образом, запутывает jQuery, когда он пытается пересечь сломанное дерево DOM.

Вот действительный HTML:

<table id="search_result_table"> 
    <tr> 
     <td> 
      <input type=radio name="pv_select" value="'||lv_spriden_id||'"/> 
     </td> 
     <td id="spriden_id" name="spriden_id"><font face="Calibri" size=3>'||lv_spriden_id||'</font></td> 
     <td id="last_name" class="c_last_name" name="last_name"><font face="Calibri" size=3>'||lv_spriden_last_name||'</font></td> 
     <td id="first_name" class = "c_first_name" name="first_name"><font face="Calibri" size=3>'||lv_spriden_first_name||'</font></td> 
    </tr> 
</table> 

И JQuery, чтобы получить значение «фамилия» ячейки таблицы в той же строке, что и проверенного радиокнопки:

$("input[name=pv_select]:checked").parent().siblings("td.c_last_name").text()); 

(я говорю HTML действителен: значения для атрибута id должны быть уникальными в HTML-странице, поэтому, если у вас несколько строк, использующих одинаковые атрибуты идентификатора для ячеек таблицы, это тоже недопустимо.)

+0

Спасибо! Исправление HTML, как было предложено выше, решило проблему. Теперь это работает как в IE, так и в Firefox. Мне не понравилось ссылаться на интересующий объект через eq(). Ссылка на это имя класса (c_last_name) теперь работает правильно. Спасибо за вашу помощь! – Anonymous

+0

Добро пожаловать. –

0

Вы Селектор работает на родовом столе с входом в тд и последнего текста имя в другом тд

может быть, ваша проблема в том, что фамилия объявлена ​​после того, как подать, так что вы должны попробовать изменить селектор с

$("input[name=pv_select]:checked").parent().siblings("td:eq(0)").text(); 

, где я только что изменил индекс одноранговых (если я получил ваш стол свалка правильно, ваши .siblings («тд: эк (1)») является имя, эк (0) должен быть фамилия)

Просто предложение ..

EDIT

Когда вы вывесили свой HTML отрывок, я понял, что вам не нужно, чтобы проверить одноуровневые элементы родительского радиостанции. Поскольку его родителем является tr и братья и сестры tr в таблице - это всего лишь несколько строк таблицы.

Что вы можете рассмотреть использует функцию пересекающее .next(), который перемещается к следующему элементу в DOM

Это грустно, что я не могу проверить это достаточно в FF (или просто потому, что Firebug/JQuery доб.), но это код, вы точно просили (получить следующий элемент ввода радио):

$('input[name="pv_select"]:checked').next(); 

единственная проблема в том, что следующий элемент шрифта элемент, который я не могу должным образом оказать FF (и не находится в строке таблицы - он отображает прямой LY внутри тела в FireBug инспектора), так .children() не может найти или whatewer тд вы пытаетесь найти

+0

Нет - это тоже не работает. Несмотря на это, я не могу опубликовать имя или фамилию. Думаю, лучше рассказать о моем вопросе (не вдаваясь в ненужные подробности): как можно через JQUERY захватить ячейку столбца рядом с выбранным переключателем? Т.е., скажем, у нас есть:
[радио button1] Column1_Value Column2_Value
[радио button2] Column1_Value Column2_Value
[проверено радио Button3] Column1_Value Column2_Value
Как я могу получить значение Column2_Value из * (выбранного) переключателя * проверяемого? (Обратите внимание, что все вышеперечисленное включено в таблицу). – Anonymous

+0

Предположительно: из выбранной строки (с помощью переключателя). Еще раз, я могу захватить значение переключателя. Тем не менее, невозможно захватить значение любой из ячеек рядом с выбранным переключателем. – Anonymous

0

Я просто понял, что это работает в Firefox, но не в IE. Следовательно, я буду анализировать то, что может вызвать для этого провал в одном браузере, а не в другом.

Смежные вопросы