مجموعة من معرفات - كيفية اختيار مع جافا سكريبت / مسج؟

StackOverflow https://stackoverflow.com/questions/1420707

  •  07-07-2019
  •  | 
  •  

سؤال

ولدي مجموعة من معرفات عنصر، يعود من بعض التحقق من جانب الخادم. لا تكون مسبوقة معرفات مع '#'. بدلا من الذهاب من خلال مجموعة والتقديم و# لكل عضو، وهناك وسائل مسج اختيار مباشرة جميع العناصر التي كتبها هوياتهم؟

هل كانت مفيدة؟

المحلول

لا تنسى "القديمة" getElementById - أنها لا تتطلب تجزئة معرفات. ثم مجرد إطعام العقد إلى مسج للحصول على وجوه مسج:

var ids = ['jq-primarySearch', 'jq-n-CSS'];
var nodes = $.map( ids, function(i) { return document.getElementById(i) } );
var jqObj = $(nodes);

نصائح أخرى

هل يمكن أن ينضم إليهم فقط، مثل هذا:

var ids = ['div1', 'div2', 'div3'];

$('#' + ids.join(',#')).click(function() { alert('hi'); });

و(NB - لم أحاول هذا - وهذا هو من على قمة رأسي)

ودعونا نقول مجموعة هي "آر".

لا يمكن أن تقوم بتعيين مجموعة الخاصة بك من معرفات سلسلة إلى صفيف من الكائنات مسج، ثم concantenate كل منهم باستخدام مسج محدد المعتاد؟

$($.map(arr, function(id) { return $('#' + id); }))

في مسج يمكنك تحديد بواسطة معرف مثل هذا

$("[id=id_value]"); // returns 1 id

وإذا قمت بتسمية لهم شيء من هذا القبيل ID_1 وID_2 يمكنك القيام بذلك

$("[id^='id_]") // returns multiple 

وفقط تفعل اختيار العقدة نفسك ثم لف النتيجة:

$(document.getElementById(id))

ويوفر بناء محدد السلسلة التي مسج سوف لا تملك إلا أن تحليل مرة أخرى وبعد ذلك تفعل بالضبط نفس الشيء. بالإضافة إلى أنك لا داعي للقلق حول هروب شخصيات مثل ':' '.'. والتي هي صالحة في معرفات ولكن يعني شيئا آخر في محددات

إذا كان لديك معرف كسلسلة يمكنك تحديده في مسج مثل هذا

$("#"+id); //gives you one element

إذا كان لديك العديد من ID التي تشبه، ثم استخدم اقتراح Elzo ل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top