2016-08-16 60 views
0

我有一個div,如下所示。我知道在標籤標籤內會有一個「用戶類型」文本。可能有多個文本「用戶類型」,但只有一個內部標籤標籤。我需要獲取標籤選擇的標識。在這種情況下,它將是user_type_22。我可以如何使用jQuery獲得它?如何在標籤標籤內的已知文本後獲得選擇框的ID?

<div class="form-group"> 

    <label class="control-label" for="user_type_22">User Type</label> 
    <div class="control"> 
     <select id="user_type_22" class="form-control" name="whateverbeit"> 
     <option>1</option> 
     <option>2</option> 
    </select> 
    </div> 

</div> 

回答

0

你可以不用一個循環:

id = $("label:contains('User Type')").next('div').find('select').attr('id'); 
alert(id); 

https://jsfiddle.net/z4qzqkhf/

0

我們可以遍歷所有標籤,並獲得選擇標籤的ID是這樣的:

$('label').each(function() { 
 
    console.log($(this).next().find("select").attr("id")) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="form-group"> 
 

 
    <label class="control-label" for="user_type_22">User Type</label> 
 
    <div class="control"> 
 
     <select id="user_type_22" class="form-control" name="whateverbeit"> 
 
     <option>1</option> 
 
     <option>2</option> 
 
    </select> 
 
    </div> 
 
    
 
    <label class="control-label" for="user_type_23">User Type</label> 
 
    <div class="control"> 
 
     <select id="user_type_23" class="form-control" name="whateverbeit"> 
 
     <option>1</option> 
 
     <option>2</option> 
 
    </select> 
 
    </div> 
 

 
</div>

0

要做到這一點,你可以使用:contains選擇,以獲得label但其文本,然後next()find()遍歷DOM得到select。試試這個:

var id = $('label:contains("User Type")').next('div').find('select').prop('id'); 
 
console.log(id);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="form-group"> 
 
    <label class="control-label" for="user_type_22">User Type</label> 
 
    <div class="control"> 
 
    <select id="user_type_22" class="form-control" name="whateverbeit"> 
 
     <option>1</option> 
 
     <option>2</option> 
 
    </select> 
 
    </div> 
 
</div>

0

試試這個..

$('label').each(function() { 
    if($(this).html() == "User Type") 
     console.log($(this).closest("select").attr("id")); 
});