2013-05-16 3 views
0

У меня есть следующий код:Как выбрать родительский элемент без какого-либо класса или идентификатора с помощью jquery?

<div> 
<label for="fsc_name1">Name:<span class="required"> *</span></label> 
</div> 

<div> 
<input style="text-align:left; margin:0;" type="text" id="fsc_name1" name="fsc_name" value="" size="60"> 
</div> 

Это часть контактной формы, и мне нужно, чтобы иметь возможность скрыть некоторые из его элементов, если выбран конкретный элемент. Так что скажем, я хочу скрыть два div сверху. Нет идентификатора или класса, и я не могу дать их. Все, что у меня есть, это уникальные значения «for =« fsc_name1 »« (<label>) и «id =» fsc_name1 »« (<input>)

+2

Ваш вопрос немного расплывчатый. Какой элемент вы выбираете, и который вы хотели бы скрыть? – billyonecan

+2

Это действительно стоит потратить время на чтение [jQuery API] (http://api.jquery.com) от начала до конца. Это занимает около 45 минут до часа, и это ** очень полезно. –

+0

Г-н Браунстоун - если бы какой-либо из наших ответов помог вам, вы могли бы пометить одного из них, как принято? Спасибо :) – sscirrus

ответ

6

Легко! Просто используйте jQuery parent(). Смотрите документы: http://api.jquery.com/parent/

$('#fsc_name1').parent().hide() 
$('label[for="fsc_name1"]').parent().hide() 

Вы также можете объединить селекторы, чтобы сэкономить место. См документы: http://api.jquery.com/multiple-selector/

$('#fsc_name1, label[for="fsc_name1"]').parent().hide() 
1

Для начала id="fsc_name1"является селектор класса, вы можете сделать это с помощью

$('#fsc_name1').parent().hide(); 

Но, я думаю, для вашего сценария вы е не хочет что-то вроде этого ...

// This can be an array of elements 
var selector = 'fsc_name1'; 
$('label[for=' + selector + ']').parent().hide(); 
$('#' + selector).parent().hide(); 
1

Нет версии JQuery:

document.querySelector('[for=fsc_name1]').parentNode.style.display = 'none'; 
document.querySelector('#fsc_name1').parentNode.style.display = 'none'; 
0

Пожалуйста, посмотрите на http://jsfiddle.net/2dJAN/31/

$('#fsc_name1').closest('div').css('border','1px solid red') 
$('#fsc_name1').closest('div').prev('div').css('border','1px solid green') 

Примечание: Точно я не могу понять ваш вопрос. Поэтому я добавляю границу к примеру div. Если вы хотите спрятаться, вместо .css вы добавите .hide(), который скроет div.

Дайте мне знать, если возникнут какие-либо вопросы.

+0

В этой контактной форме есть другие элементы, и мне нужно построить простое взаимодействие. Скажем ... если поле «У меня нет имени» проверяется, то метки, удерживающие divs и вход, исчезнут. Теперь я знаю, как это сделать. –

0

Используйте метод .parent().

$('#fsc_name1').parent().hide(); 
$('label[for="fsc_name1"]').parent().hide(); 
Смежные вопросы