получение родительских атрибутов в jquery - PullRequest
2 голосов
/ 20 мая 2011

Просто простой вопрос о jQuery.Я новичок в этом.Как я могу получить значение для "post_id", когда пользователи нажимают на "span.fav" (звезда)?Мне нужно значение родителя, а не первое в документе.Я думаю, что ближайший будет работать?

html

<form action="index.php" method="post" accept-charset="utf-8"> 
    <div class="hidden"> 
        <input type="hidden" name="post_id" value="1000000019" />
        <input type="hidden" name="xxxxxxx" value="xxxxxxxxxx" />
    </div>
    <p>
        <span name="fav" class="fav">★</span>Post message here...<span class="author">by Thomas Quantas</span>
    </p>
</form>
<form action="index.php" method="post" accept-charset="utf-8"> 
    <div class="hidden"> 
        <input type="hidden" name="post_id" value="1000000020" />
        <input type="hidden" name="xxxxxxx" value="xxxxxxxxxx" />
    </div>
    <p>
        <span name="fav" class="fav">★</span>Post message here...<span class="author">by Thomas Quantas</span>
    </p>
</form>

jQuery, который у меня есть.

$(document).ready(function(){
$("span.fav").bind('click', function() {
    //var test = $(this).parent();
    //var test = $(this).closest();
    var hidden_id = $(this).closest($("input[type='hidden']").attr('value'));
    var hidden_id = $("input[type='hidden']").attr('value');
    alert(hidden_id);
});
});

Ответы [ 3 ]

2 голосов
/ 20 мая 2011

Попробуйте:

    var hidden_value = $(this).closest('form').find('input:hidden[name="post_id"]').attr('value');
    alert(hidden_value);

Разница внутри самой близкой: передайте строку вместо селектора jQuery.

1 голос
/ 20 мая 2011

Просто найдите родителя, затем выполните последующие поиски из этого:

$('span.fav').click(function(){
  var rel = $(this).parentsUntil('form').parent();
  var hidden_id = $(rel).find("input[name='post_id']").val();
});
0 голосов
/ 20 мая 2011

вы должны найти ближайшую форму и ввести имя post_id из формы

var hidden_id = $(this).closest("form").find("input[name='post_id']").val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...