/ / JQuery में वर्ग के बजाय डेटा-विशेषता पर फ़िल्टर तत्व - jquery

JQuery में कक्षा के बजाय डेटा-विशेषता पर फ़िल्टर तत्व - jquery

मैं छानने के लिए एक सरल विधि पर काम कर रहा हूंतत्वों उनके वर्ग के आधार पर। उपयोगकर्ता एक चेकबॉक्स की जांच करता है और jQuery यह ठीक करता है और किसी भी तत्व को वर्ग के आधार पर बंद कर देता है। वह रेखा जो तत्व को बंद करती है, और तत्व कैसा दिखता है:

$("#ItemList div:not(." + Filter + ")").hide();
<div class="1 2 3">asdf</div>

हालाँकि मैं वर्ग-गुण के बजाय ऐसा करने के लिए डेटा-xxxx विशेषता का उपयोग करने में सक्षम होना चाहता हूं, लेकिन मुझे वास्तव में इस तरह से तत्वों का चयन करने में समस्या हो रही है। मेरे पास क्या है:

$("#ItemList div:not([data-filter"" + Filter + ""])").hide();
<div data-filter="1 2 3">asdf</div>

इसलिए, मैं कक्षा के बजाय डेटा-फ़िल्टर विशेषता का उपयोग करके तत्व का चयन कैसे करूं? यहाँ पर मैंने जो तरीके ढूंढे हैं वो मेरे लिए काम नहीं कर रहे हैं! बहुत धन्यवाद।

अद्यतन करें

ठीक है, इसलिए जेम्स एलार्डिस के जवाब ने चाल चली। लेकिन एक और मुद्दा पैदा कर दिया है कि शायद मुझे मूल पोस्ट में कहा जाना चाहिए।

प्रत्येक डेटा-xxxx विशेषता में कई मान हो सकते हैं, मुझे काम करने के लिए इस फ़िल्टर की आवश्यकता है ताकि यदि कोई भी मूल्य दिखाता है तो वह तत्व को छिपाएगा नहीं।

$("#Filters input").change(function()
{
$("#ItemList div").show();
$("input").each(function()
{
var Checked;
if(Checked = $(this).attr("checked"))
{
var Filter = $(this).attr("data-filter");
$("#ItemList div:not([data-filter="" + Filter + ""])").hide();
};
});

<div data-filter="1">1</div>
<div data-filter="1 3">1 3</div>

उदाहरण के लिए यदि निम्न विशेषता वाला एक चेकबॉक्स चेक किया जाता है तो यह दोनों डिवीजनों को दिखाएगा:

data-filter="1"

लेकिन अगर विशेषता इस तरह है तो यह केवल दूसरा दिखाएगा:

data-filter="3"

उत्तर:

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

आप इस तरह jQuery फिल्टर फ़ंक्शन का उपयोग कर सकते हैं:

$("#ItemList div").filter(function()
{
var attr = $(this).attr("data-filter");
var filterArr = attr.split(" ");
return $.inArray(Filter, valArr) == -1;
}
).hide();

मैंने इसे परीक्षण नहीं किया लेकिन इसे काम करना चाहिए। आप इसमें से अप्रकाशित दस्तावेज़ पा सकते हैं संपर्क और इस से फिल्टर फ़ंक्शन के लिए प्रलेखन संपर्क


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

तुम पास थे। तुम बस याद आ रही है = चरित्र:

$("#ItemList div:not([data-filter="" + Filter + ""])").hide();
//                               ^ You missed this

यहाँ एक है कामकाजी उदाहरण.


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

jQuery ("[डेटा-नाम = कुछ]") या नहीं के लिए, jQuery ("[डेटा-नाम! = कुछ]")

यहाँ उपलब्ध विशेषता चयनकर्ताओं की जाँच करें: http://api.jquery.com/category/selectors/