2014-12-10 4 views
2

Я хочу получить родительский идентификатор div (класс div называется «col-sm-2») при выборе каждой опции в теге HTML «select» в каждом div. Но он всегда дает только идентификатор div последнего добавленного продукта в оповещении «id». Например, если идентификатор моего последнего добавленного продукта равен «7», он всегда дает «7» в качестве предупреждения.Как получить родительский идентификатор div в javaScript?

Вот мой код PHP для получения идентификатора продукта.

$jsql_ae7 = mysql_query("select request_list.product_id from request_list where request_list.product_id='{$jrowa2['id']}' and request_list.email='$visit_email'") or die(mysql_error()); 
$jfeta7 = mysql_fetch_assoc($jsql_ae7); 

Вот мой код HTML.

<div class="col-sm-2" id="<?php echo $jfeta7['product_id']; ?>"> 
    <select id="formats_id" name="aformats" onchange="showFormat(this);"> 
     <option value="<?php echo $jrowa2['formats']; ?>"><?php echo $jrowa2['formats']; ?></option> 
      <?php foreach($formats3 as $v3){ ?> 
       <?php if($v3 !== $jrowa2['formats']) { ?> 
        <option value="<?php echo $v3; ?>"><?php echo $v3; ?></option> 
       <?php } ?>   
      <?php } ?> 

    </select> 
</div> 

Вот мой код javaScript.

var showFormat = function(dd) { 
    var format_value = dd.options[dd.selectedIndex].value; 
    var scriptTags = document.getElementsByTagName('select'); 
    var id = scriptTags[scriptTags.length - 1].parentNode.id; 
    alert(id);   
}; 
+0

проверить мой ответ, используя JavaScript. –

ответ

8

Попробуйте использовать each:

$('select').each(function() { 
    alert($(this).parent().attr('id')); 
}); 
1

Вы coild получить свойство идентификатора немедленного контейнера DIV с помощью closest():

$('select').on('change',function() { 
    alert($(this).closest('div').prop('id')); 
}); 
1

использовать этот код

var showFormat = function(dd) { 
    var format_value = dd.options[dd.selectedIndex].value; 
    var scriptTags = document.getElementsByTagName('select'); 
    var parent = scriptTags[scriptTags.length - 1].parentNode; 
    alert(parent.getAttribute('id'));   
}; 
1

Попробуйте это:

Fiddle

$('#formats_id').change(function(){ 

    alert($(this).parent().attr('id')); 
}); 
1

Во-первых, мы начнем с делать выбор:

$('select').each(function() { 
    var selectField = $(this); // this will point to select element 
}); 

Есть два способа:

  1. Это будет принимать прямые родительский элемент

    selectField.parent(). Attr ('id');

  2. Это будет выбрать первый предок, который является DIV с классом 'моего класса':

    selectField.closest ('div.my класса') Attr ('ID');.

Оба работают, но отличаются глубиной поиска :)

Смежные вопросы