как получить 1 скрытое поле среди нескольких внутри div - PullRequest
1 голос
/ 13 мая 2009

у меня есть 3 скрытых поля в 1 делении. когда у меня есть ссылка на этот div, как получить 1 из скрытых полей в этом div.

Ответы [ 7 ]

6 голосов
/ 13 мая 2009

Это также будет работать (jQuery):

$('#my_div').find('input[type=hidden]:first')
5 голосов
/ 13 мая 2009

Предположим, у вас есть DIV, например:

<div id="mydiv">
    <input type="hidden">
    <input type="hidden">
    <input type="hidden">
</div>

Вы можете использовать jQuery, чтобы сделать что-то вроде этого, чтобы выбрать все из них:

$('input:hidden','#mydiv');

С этим селектором теперь у вас есть все 3 скрытых поля в коллекции jQuery. Вы можете выбрать, какой из них вы хотите использовать, используя несколько методов:

$('input:hidden:first','#mydiv'); // get first one using first
$('input:hidden:last','#mydiv'); // get last one using last
$('input:hidden','#mydiv').eq(0); // get first one using eq
$('input:hidden','#mydiv').eq(1); // get second one using eq
$('input:hidden','#mydiv').eq(2); // get third one using eq
$('input:hidden:eq(0)','#mydiv'); // get first one using eq in selector

Варианты:

  • first - получить первый соответствующий элемент в коллекции.
  • last - получить последний найденный элемент в коллекции.
  • eq(N) - получить N-й соответствующий элемент, на основе 0.
  • :eq(N) - получить N-й соответствующий элемент, основанный на 0, внутри строки селектора.

Я лично фанат варианта 3, так как мне не нравится, когда в селекторе слишком много дерьма.

Одно предостережение о том, что с помощью селектора :hidden мы можем сопоставить другие элементы ввода, которые скрыты (т.е. не видны). Если вы ожидаете, что это произойдет, или даже если вы этого не сделаете, вы можете сделать это:

$('input[type=hidden]', '#mydiv').eq(0);
4 голосов
/ 13 мая 2009

Без какого-либо кода трудно помочь, но я бы сказал, чтобы дать скрытому полю ID и использовать:

var hdn = document.getElementById("id");

Или, если вы используете Jquery, используйте:

var hdn = $("#id");
1 голос
/ 18 мая 2009

Для справки, если вы не используете jQuery, как оригинальный постер, и предполагаете, что структура выше:

<div id="mydiv">
  <input type="hidden">
  <input type="hidden">
  <input type="hidden">
</div>

var div = document.getElementById('mydiv');
var inputs = div.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
  // Match your input with inputs[i].name, etc.
}
1 голос
/ 13 мая 2009

Я бы назначил класс для скрытого, который вы хотите найти - немного проще для программиста, оглядывающегося на него через 4 года. Я использую «id» в качестве примера скрытого. Как только вы найдете его с помощью jQuery, вы можете использовать .val (), чтобы получить его значение.

HTML:

<div id="mydiv">
  <input type='hidden' name='mydiv_id' class='idField' value='test1' />
  <input type='hidden' name='mydiv_hidden2' class='option2' value='test2' />
  <input type='hidden' name='mydiv_hidden3' class='option3' value='test3' />
</div>

JQuery:

//execute on document ready:
$(function() {
  var div = $('#mydiv'); //some jquery/dom element "div"

  // use the jQuery selector with "div" as our context.
  var $hidden = $('input.idField', div);

  alert($hidden.val()); // should alert 'test1'
});
1 голос
/ 13 мая 2009

если это так:

<div id="somediv">
    <input type="hidden"/>
    <input type="hidden"/>
    <input type="hidden"/>
</div>

и вы используете jquery, вы можете просто написать это:

$("#somediv > input[type='hidden']:eq(1)")

и должен возвращать ссылку на 1-е скрытое поле. если вы хотите второе, используйте «eq (2)» и т. д.

1 голос
/ 13 мая 2009
var firstHidden = $("input[type='hidden']:first", ref);

: первый псевдокласс и селектор атрибута

или

var firstHidden = $("input:hidden:first", ref);

: скрытый псевдокласс (будьте осторожны, поскольку: hidden также находит элементы со стилем = "display: none")

или

var firstHidden = $("input[type='hidden']", ref).eq(0);

.eq ()

где переменная ref является ссылкой на элемент DIV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...