У меня есть следующий код, который запускается в конце длинного стола, который имеет несколько button.enter-match
элементов:Как получить родительский объект первого объекта jQuery?
$("button.enter-match")
.button()
.on('click', function() {
$("form.enter-match").dialog({
modal: true,
height: 'auto',
width: 200,
close: function() {
$("form.enter-match input[name='code']").val('');
},
open: function() {
$("form.enter-match input[name='code']").val('').focus();
},
buttons: {
Set: function() {
pid = $(this).parents("[data-pid]").data('pid');
if ($("form.enter-match input[name='code']").val() == '') {
alert('Code empty!');
return false;
}
$.post(
request_url,
{
'action': 'set_match',
'pid': pid,
'code': $("form.enter-match input[name='code']").val()
},
function (data) {
error_handler(data);
if (data['error'] == null) {
$("tr#pid-" + pid + " td.code:first div").html('<i>' + $("form.enter-match input[name='code']").val() + '</i>');
$("form.enter-match").dialog('close');
}
},
'json'
);
}
}
});
});
Линия pid = $(this).parents("[data-pid]").data('pid');
не получает значение pid
данных, поскольку form#enter_match
создается на самом верху документ для повторного использования в коде по мере необходимости. Поэтому он не будет иметь родителя с атрибутом [data-pid]
, однако button.enter-match
будет. Как мне получить значение в [data-pid]
для этого button.enter-match
с части кода $("form.enter-match").dialog()
?
Идентификаторы должны быть уникальными в документе, если вы собираетесь копировать кусок HTML, у вас не должно быть никаких идентификаторов. Ваши селекторы просто не будут работать иначе. Вместо этого вы должны дать эти элементы описательным классам. –
@PaoloBergantino - Вы полностью правы, что идентификатор должен быть уникальным, однако селектор, который указывает тэг и идентификатор _will_, все еще работает. (Селектор, который использует только идентификатор, найдет только один, точно так же, как 'getElementById()' находит только один.) – nnnnnn
@nnnnnn - не защищать плохую практику/недействительный HTML, это просто не должно быть сделано => http://stackoverflow.com/questions/5611963/can-multiple-different-html-elements-have-the-same-id-if-theyre-different-types – PlantTheIdea