2012-02-24 4 views
0

У меня есть динамическая таблица html, сгенерированная с помощью javascript. таблица содержит различные элементы управления, такие как текстовое поле, раскрывающийся список, в котором есть пользовательские атрибуты. Как я могу прокрутить все элементы управления, присутствующие внутри этой таблицы, и найти элемент управления, чей собственный атрибут соответствует некоторому значению?Найти управление в javascript или JQuery

+1

Было бы легче увидеть разметку, или, по крайней мере, часть его ... –

ответ

2

Это даст вам все элементы формы внутри вашего стола (:input selector):

var $formElements = $('#tableid').find(':input'); 

Вы можете фильтровать с attribute selector:

//will select every form element having a data-custom attribute set to 5 
var $formElements = $('#tableid').find(':input[data-custom="5"]'); 

Пожалуйста, смотрите jsFiddle Demo. Для моих примеров я использовал HTML5 data- attributes, но код будет работать с любым атрибутом, который вам нужен.

ИЛИ вы можете использовать filter() method написать функцию, которая фильтрует ваши элементы:

var $formElements = $('#tableid').find(':input').filter(function() { 
    return $(this).attr('data-custom') == '5'; 
}); 

jsFiddle Demo with filter()

+0

«чей пользовательский атрибут соответствует» Я думаю, что ваш селектор не находит пользовательских атрибутов – Tx3

+0

$ formElements .each (function() { // Как я могу получить элемент управления, чье пользовательское значение атрибута «x»? }); – sharmila

+0

@sharmila См. Мой обновленный ответ. Я на первый взгляд неправильно понял ваш вопрос. Селектор атрибутов - ваш лучший выбор здесь. Я скоро добавлю демо. – kapa

0

Вы можете использовать Attribute Contains Selector.

Проверьте пример это, вероятно, очень близко к тому, что вам нужно, которая является нахождение input & select элементов с определенным атрибутом значения

0

Дайте им класс .control и:

$('.control[attribute=value]') 

Проверить Selectors API для получения дополнительной информации селектора атрибутов.

1

Демо: http://jsfiddle.net/DSqZr/1/

function getControl(_value){ 
    $("#panel :input").each(function(){ 
     if($(this).attr("custom") == _value){ 
      return $(this); 
     } 
    })​ 
} 

var selectedCrl = getControl(1); 
+0

Я хочу вернуть конкретный элемент управления (вместо предупреждения), чье пользовательское значение атрибута равно 1. Как я могу это сделать? – sharmila

+0

@sharmila обновленный код – mgraph

+0

Спасибо. Как я могу получить элементы управления, которые являются выпадающим списком? если это раскрывающийся список, тогда мне нужно изменить selecteditem.Any идеи? – sharmila