/ / मैं एक विशेष उपयोग jQuery के मूल माता-पिता नोड प्राप्त करना चाहता हूं, लेकिन यह किसी कारण से काम नहीं कर रहा है - jquery, jquery-selectors

मैं एक तत्व का एक विशिष्ट अभिभावक नोड प्राप्त करना चाहता हूं जो jQuery का उपयोग करता है लेकिन यह किसी कारण से काम नहीं कर रहा है - jquery, jquery-selectors

मेरे पास एक किंवदंती टैग के अंदर एक स्पैन है जो मैं चाहता हूंक्लिक करने पर फ़ील्डसेट टैग हटाने के लिए उपयोग करें। मैं jQuery का उपयोग कर रहा हूं और यह वह कोड है जो मुझे काम करने के लिए लग सकता है: (हाँ, मैं jQuery के नवीनतम संस्करण का उपयोग कर रहा हूँ)

jQuery:

function removeStep(){
$(this).closest("fieldset").remove();
//Already tried: $(this).parents("fieldset").remove(); . . . didn"t work
}

HTML:

<div id="steps">
<fieldset class="step">
<legend>STEP 1: <span class="remove" onclick="removeStep();">remove</span></legend>
</fieldset>
</div>

उत्तर:

जवाब के लिए 2 № 1

समस्या यह है कि आपके फ़ंक्शन में "यह" जीता गया "टी वही हो जो आप चाहते हैं कि यह हो।

चूँकि आप "वैसे भी jQuery का उपयोग कर रहे हैं, इसलिए आपको HTML मार्कअप के माध्यम से सीधे इवेंट हैंडलर्स को बाइंड करने की आदत से बाहर निकलना चाहिए। इसके बजाय, हैंडलर को jQuery के साथ सेट करें।"

$(function() {
$("span.remove").click(removeStep);
});

यदि आप इसे HTML में अवश्य करते हैं, तो यह प्रयास करें:

... <span class="remove" onclick="removeStep.call(this);">remove</span>

जवाब के लिए 0 № 2

$(this.parentElement.parentElement).remove() काम करना चाहिए।

$(this).parent().parent().remove() और अधिक "jQuery रास्ता" है मुझे लगता है; मुझे लगता है कि पुराने आईई ने किसी मूर्खतापूर्ण कारण के लिए पेरेंटाइनमेंट के बजाय पेरेंटेनोड का इस्तेमाल किया।


जवाब के लिए 0 № 3

इसे सीधे स्पैन के संदर्भ में पास करके काम करना पड़ा

jQuery:

function removeStep(step){
$(step).closest("fieldset").remove();
}

HTML:

<div id="steps">
<fieldset class="step">
<legend>STEP 1: <span class="remove" onclick="removeStep(this);">remove</span></legend>
</fieldset>
</div>