2009-05-14 2 views
-1

Я использую selectorgadget, чтобы помочь мне выбрать элементы в документе. Но когда я использовал его в jQuery, это не сработало. Селектор nth-child, похоже, не работает для меня.У меня проблема с выбором элемента в jQuery

<div id = "wrap"> 
<div class = "book"> 
    <div class = "chapter"> 
     <p class = "text"> 
      <table> 
       <tbody> 
        <tr> 
         <td>Title</td> 
         <td> 
          <b>jQuery</b> 
         </td> 
        </tr> 
       </tbody> 
      </table> 
     <p> 
    </div> 
</div> 
</div> 

HTML-код выше. Существует много книжного класса. Обертка div - это оболочка, которая их окружала. Селектор Гаджет сказал, что когда я использую:

$("#wrap tr:nth-child(1) b") Он должен выбрать элемент TD с тегом <b>. Поэтому он должен выбрать «jQuery».

Я пробовал, но это не сработало. Когда я попробовал:

var query = $("#wrap tr:nth-child(1) b").text(); 
alert(query); 

Браузер посылает предупреждение без текста. И когда я попробовал:

var query = $("#wrap tr:nth-child(1) b").html(); 
alert(query); 

Браузер отправляет предупреждение NULL.

Что случилось?

+0

Вы могли бы показать разметку? –

+0

Да, я забыл включить разметку .. Извините! Спасибо –

+0

Я только что пробовал ваш код, и он отлично работал для меня ... –

ответ

0

вы пробовали

модифицирована, я первая техника его подводит заметить тр: п-й ребенок, нет 1 ребенок тр в этой таблице, но есть тд с индексом 1

var query = $(".text td:nth-child(1) b").html(); 
alert(query); 
+0

Да, он возвращает null. Всякий раз, когда я использую n-й ребенок. Я получаю null каждый раз. Я использую greasemonkey с jQuery. Возможно, я не могу использовать nth-child в greasemonkey? –

+0

John Я могу использовать .text tr b. Но я хочу знать, почему я не могу использовать n-й ребенок. Потому что мне нужно выбрать другие более сложные элементы в документе, которые требуют использования nth-child. –

+0

вместо tr использовать td –

0

В тестирование образца в Firefox 3 и IE8, я был в состоянии получить обратно текст, ожидаемый с помощью селектора после одного щипка - я добавил идентификатор «обертки» для табличного элемента:

<table id="wrap"> 

после того, что было добавлено в вашей Селектор, казалось, работал просто отлично. Есть ли определенная платформа, с которой вы столкнулись?

+0

Я использую Greasemonkey. Это не мой HTML-документ. Может быть, мне нужно добавить класс ко всей таблице? –

0

Я просто попробовал ваш пример кода, и он сразу сработал. Какую версию jQuery вы используете? Он работает в 1.3.2

Вот рабочий пример: http://jsbin.com/uzuzu/edit

+0

Я использую 1.3.2. Хмм, я думаю, проблема в Greasemonkey. Я использую Greasemonkey с jQuery. –

+0

как вы ссылаетесь на jQuery? вы используете unsafeWindow.jQuery? – nickf

2

Я попытался это с FF 3.0.10, JQuery 1.3.2, Greasemonkey 0.8.2

var query = $("#wrap tr:nth-child(2) b").text(); 
returns "jQuery" 

2 в nth-child() делает трюк !! Индекс для n-ребенка начинается с 1 не 0

0

Вам нужно nth-child (2),: nth-child (1) выбирает заголовок. Помните, что: eq основан на 0, а: nth-child() основан на 1. Смешение!