2017-11-25 101 views
-1

找最接近的元素我有填充DIV一些HTML的js代碼:通過ID jQuery的

function InvestigationList() { 
    var id = $('#idval').text(); 
    //alert(id); 
    var model = { 
     id: parseInt(id) 
    }; 
    $.ajax({ 
     url: '@Url.Action("ListofInvestigations", "PatientDatabase")', 
     contentType: 'application/json; charset=utf-8', 
     data: JSON.stringify(model), 
     type: 'POST', 
     dataType: 'json', 
     processData: false, 
     success: function(data) { 
      var list = data; 
      for (var i = 0; i <= list.length - 1; i++) { 
       var investigationList = '<p style=" color: #1d69b4; font-size: 18px;">' 
        + '<b style=" color: #1d69b4; font-size: 20px;" >Finding from:</b> ' + '<b id="idvalue" style="display:none">' + list[i].id + '</b>'+'<b id="findingval">'+list[i].start +'</b>'+ '</p>' 
        + '<p><b style=" color: #1d69b4; font-size: 20px;">Notice</b></p>' 
        +'<p style=" color: #1d69b4; font-size: 18px;">' +list[i].notice+'</p>'; 
       $('#panel3').append('<div>' + investigationList + '</div>'); 
      } 
     } 
}); 
} 

我需要通過點擊它來獲得findingvalidvalue

我寫這篇文章的代碼:

$(document).on('click', 
    '#findingval', 
    function() { 
     var findingval = $(this).text(); 
     alert(findingval); 
     var idvalue = $(this).closest('#idvalue').text(); 
     alert(idvalue); 

    }); 

查找val工作很好,但idavalue沒有得到。

我做錯了什麼?

+0

嗯....應該只有每個ID的一個元素。請使用課程。 –

+2

由於ID _在文檔中是唯一的,所以我甚至沒有意義去搜索「最近的」ID--或者在文檔中有一個具有該ID的單個元素_,或者不是 - 「close」無關緊要接着就,隨即。 – CBroe

+0

這就是所謂的ID ..你不認爲每個Facebook用戶都有相同的ID。這沒有意義。 ID的通常是獨一無二的,所以它也是有意義的。類定義了一組元素,所以使用它們很好。 「獲得與某個類最接近的元素」將是一個更好的問題,並且會代表正確開發的文檔。 –

回答

2

id屬性在同一個文檔中應該是唯一的,所以請用普通類替換重複的屬性。

當您更改所有普通類重複的ID,你應該在你的JS代碼使用這些類,如:

$(document).on('click','.findingval',function() { 
    var findingval = $(this).text(); 
    console.log(findingval); 

    var idvalue = $(this).siblings('.idvalue').text(); 
    console.log(idvalue); 
}); 

希望這有助於。

$(document).on('click', '.findingval', function() { 
 
    var findingval = $(this).text(); 
 
    console.log(findingval); 
 

 
    var idvalue = $(this).siblings('.idvalue').text(); 
 
    console.log(idvalue); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div> 
 
    <p style=" color: #1d69b4; font-size: 18px;"> 
 
    <b style=" color: #1d69b4; font-size: 20px;">Finding from:</b> 
 
    <b class="idvalue" style="display:none">idvalue 1</b> 
 
    <b class="findingval">findingval 1</b> 
 
    </p> 
 
    <p style=" color: #1d69b4; font-size: 18px;"> 
 
    <b style=" color: #1d69b4; font-size: 20px;">Finding from:</b> 
 
    <b class="idvalue" style="display:none">idvalue 2</b> 
 
    <b class="findingval">findingval 2</b> 
 
    </p> 
 
    <p style=" color: #1d69b4; font-size: 18px;"> 
 
    <b style=" color: #1d69b4; font-size: 20px;">Finding from:</b> 
 
    <b class="idvalue" style="display:none">idvalue 3</b> 
 
    <b class="findingval">findingval 3</b> 
 
    </p> 
 
</div>

+0

它們是兄弟姐妹,並且在類選擇器中缺少點 – charlietfl