2010-04-26 20 views
6

हाय मैं चयनित चेकबॉक्स इनए पेज की सूची प्राप्त करना चाहता हूं, वास्तव में मुझे वास्तव में जो चाहिए वह है चेकबॉक्स के बगल में तत्व का पाठ प्राप्त करें जो एक HTML तत्व <li> कोड नीचे है और उसके काम नहीं कर रहाJquery चयनित चेकबॉक्स

यहाँ मेरे वर्तमान jQuery है:

<ul id="7b1fe2bd-1b26-4185-8cd9-aec10e652a70"> 
<li>Structured Products<input type="checkbox" name="checkboxlist"</li> 
<li>Global FID 
<ul> 
    <li>PowerPoint Presentations<input type="checkbox" name="checkboxlist"</li> 
    <li>Global Deck 
    <ul> 
    <li>Test1<input type="checkbox" name="checkboxlist"</li> 

    <li>Test2<input type="checkbox" name="checkboxlist"</li> 
    <li>Test3<input type="checkbox" name="checkboxlist"</li> 

    </ul> 
    <input type="checkbox" name="checkboxlist"</li> 
    <li>Credit Default Swaps Position 
    <ul> 
    <li>Test4<input type="checkbox" name="checkboxlist"</li> 

    <li>Test5<input type="checkbox" name="checkboxlist"</li> 

    </ul> 
    <input type="checkbox" name="checkboxlist"</li> 
    <li>Thought Leadership<input type="checkbox" name="checkboxlist"</li> 
    <li>Fixed Income Perspectives<input type="checkbox" name="checkboxlist"</li> 
    <li>Public Policy Information and Regulatory<input type="checkbox" name="checkboxlist"</li> 

    <li>Regional FID<input type="checkbox" name="checkboxlist"</li> 

</ul> 
<input type="checkbox" name="checkboxlist"</li> 
<li>Global Rates<input type="checkbox" name="checkboxlist"</li> 
<li>Global Credit Products<input type="checkbox" name="checkboxlist"</li> 
<li>FX<input type="checkbox" name="checkboxlist"</li> 

<li>Emerging Markets<input type="checkbox" name="checkboxlist"</li> 
<li>Commodities<input type="checkbox" name="checkboxlist"</li> 
<li>testcat<input type="checkbox" name="checkboxlist"</li> 
<li>testcat<input type="checkbox" name="checkboxlist"</li> 

</ul> 

उत्तर

17

आपका आदानों की जरूरत हो जाएगा प्राप्त कर सकते हैं अपने एचटीएमएल को वैध बनाने के अंत में /> के साथ बंद होने के लिए, इस तरह:

<input type="checkbox" name="checkboxlist" /> 

तो फिर तुम इस तरह jQuery कर सकते हैं पाठ की एक सरणी प्राप्त करने के लिए:

$(function() { 
    $('#target').click(function() { 
    var checkValues = $('input[name=checkboxlist]:checked').map(function() { 
     return $(this).parent().text(); 
    }).get(); 
    //do something with your checkValues array 
    }); 
});​ 

You can see this working here

के बाद से सभी की जरूरत है अपने लेआउट के साथ माता पिता की .text(), आप .map() उपयोग कर सकते हैं जल्दी से एक पाने के लिए चयनकर्ता के आधार पर एक संपत्ति की सरणी।

+0

धन्यवाद एक बहुत निक – kevin

+1

HTML वैध बनाने के स्लैश, की आवश्यकता नहीं है जो ब्राउजर पार्सर अनदेखा कर देगा। –

+0

@Tim - कम से कम, इसे बंद करना होगा, जब आप उस पर हों तो एक्सएचटीएमएल वैध तरीके से क्यों न करें? यह इसके साथ वैध एचटीएमएल है, यह इसके बिना अवैध एक्सएचटीएमएल है ... कह रहा है कि ब्राउजर पूरी तरह अनदेखा कर देगा यह एक गलत कथन है। आप अपना डॉक्टरेट मान रहे हैं, लेकिन * /> 'किसी भी * कार्यप्रणाली में काम करता है, वहां कोई धारणा नहीं है। –

3

सबसे पहले आप क्लोस के लिए है:

$(document).ready(function() { 
    $('#target').click(function() { 
    alert("in"); 
    var checkValues = []; 
    $('input[name=checkboxlist]:checked').each(function() { 
     alert($(this)val()); 
     checkValues.push($(this)val()); 
    }); 
    }); 
}); 

यहाँ एचटीएमएल है ई अपने चेकबॉक्स टैग

<input type="checkbox" name="checkboxlist" 

होना चाहिए

<input type="checkbox" name="checkboxlist" /> 

मुझे लगता है, अपने HTML से आप फूल का मूल पाठ जो इच्छित पाठ

$(function(){ 
    $('#target').click(function(){ 
     var selected = new Array(); 
     $("input:checkbox[name=checkboxlist]:checked").each(function(){ 
      var val = $(this).closest("li").text(); 
      selected.push(val); 
     }); 
    }); 
}); 
4
$("input[type=checkbox]:checked").parent().text() 
0

आप अपने इनपुट टैग को सही तरीके से बंद नहीं कर रहे हैं। इसके अलावा, $(this)val()$(this).val() होना चाहिए।

आप li तत्व का मूल पाठ जो इनपुट तत्व शामिल प्राप्त करने के लिए करना चाहते हैं, तो आप नीचे के रूप में लिख सकते हैं:

$(this).parents("li:first").text(); 
+1

एक'closest ("li") है जो यह आसान बनाता है;) –

संबंधित मुद्दे