Есть столбец таблицы, который я пытаюсь развернуть и скрыть:
JQuery , кажется , чтобы скрыть td
элементы , когда я выбираю его класс , но не элемент имя .
Например, почему:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Обратите внимание на HTML ниже, второй столбец имеет одинаковое имя для всех строк. Как я могу создать эту коллекцию, используя name
атрибут?
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
Ответы:
Вы можете использовать селектор атрибутов jQuery :
источник
$("td:not([name='tcol1'])")
например. Вы можете видеть это на этой скрипкеЛюбой атрибут может быть выбран с помощью
[attribute_name=value]
способа. Смотрите образец здесь :источник
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Таким образом, этот ответ работал лучше, чем принятый ответ, благодаря правильному использованию цитат.Если у вас есть что-то вроде:
Вы можете прочитать все так:
Фрагмент:
источник
Вы можете получить массив элементов по имени по старинке и передать этот массив в jQuery.
примечание: единственное время, когда у вас будет причина использовать атрибут «имя», должно быть для флажков или радиовходов.
Или вы можете просто добавить другой класс к элементам для выбора (это то, что я бы сделал)
источник
Вы можете получить значение имени из поля ввода, используя элемент name в jQuery:
источник
Каркасы обычно используют имена скобок в формах, например:
Они могут быть доступны по:
источник
Я сделал так, и это работает:
https://api.jquery.com/attribute-equals-selector/
источник
Вы забыли второй набор цитат, что делает принятый ответ неверным:
источник
'td[name="nested[fieldName]"]'
Вот простое решение:
$('td[name=tcol1]')
источник
Вы можете получить элемент в JQuery, используя его атрибут ID следующим образом:
источник
Вы можете использовать любой атрибут в качестве селектора с
[attribute_name=value]
.источник
Лично я делал в прошлом общий идентификатор класса и использовал его для выбора. Это может быть не идеально, поскольку у них есть определенный класс, который может не существовать, но это делает выбор намного проще. Просто убедитесь, что вы уникальны в своих именах классов.
то есть для примера выше я бы использовал ваш выбор по классу. Еще лучше изменить имя класса с жирного на «tcol1», чтобы избежать случайных включений в результаты jQuery. Если жирный шрифт действительно ссылается на класс CSS, вы всегда можете указать оба в свойстве класса, то есть 'class = "tcol1 bold"'.
Таким образом, если вы не можете выбрать по имени, либо используйте сложный селектор jQuery и примите любое связанное с этим снижение производительности, либо используйте селекторы класса.
Вы всегда можете ограничить область действия jQuery, включив имя таблицы, например, $ ('# tableID> .bold')
Это должно ограничить поиск jQuery в «мире».
Его все еще можно классифицировать как сложный селектор, но он быстро ограничивает любой поиск внутри таблицы с идентификатором «#tableID», поэтому сводит обработку к минимуму.
Альтернативой этого, если вы ищете более 1 элемента в # table1, было бы поискать это отдельно, а затем передать его в jQuery, поскольку это ограничивает область действия, но экономит немного обработки, чтобы искать его каждый раз.
источник
Вы можете использовать функцию:
источник
get.elementbyId()
? Вы имели в видуdocument.getElementById()
?