Я пытаюсь использовать, "содержит" нечувствительно к регистру. Я пытался использовать решение в следующем stackoverflow вопросе, но это не работало:
Есть ли нечувствительный к регистру jQuery: содержит селектор?
Для удобства решение копируется здесь:
jQuery.extend(
jQuery.expr[':'], {
Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
});
Вот ошибка:
Error: q is not a function
Source File: /js/jquery-1.4.js?ver=1.4
Line: 81
Вот то, где я использую его:
$('input.preset').keyup(function() {
$(this).next().find("li").removeClass("bold");
var theMatch = $(this).val();
if (theMatch.length > 1){
theMatch = "li:Contains('" + theMatch + "')";
$(this).next().find(theMatch).addClass("bold");
}
});
Мое использование чувствительного к регистру оригинала "содержит" в тех же работах сценария без любых ошибок. У кого-либо есть какие-либо идеи? Я ценил бы его.
Можно реализовать калькулятор стека постфиксов . В основном, нужно преобразовать выражение в постфиксную нотацию, а затем просто выполнить итерацию над токенами в постфиксе для вычисления.
-121--2062243-Для хранения коллекций можно использовать многомерные массивы Variant. Варианты могут хранить данные любого типа, что делает их очень универсальными.
Const Name as Integer = 0
Const Age as Integer = 1
Const moreStuff as Integer = 2
Dim myStructure as Variant
Redim myStructure(0 to 2, 0 to n)
myStructure(Name, 0) = "Blah"
myStructure(Age, 0) = 33
myStructure(moreStuff, 0) = "test"
Примечание: Вы можете расширить только последнее измерение многомерного массива в VBA и сохранить значения, поэтому убедитесь, что оно соответствует измерению, которое вы хотите масштабировать.
Это базовая структура данных, и вы можете разработать класс или функции, чтобы объединить все в соответствии с вашими потребностями.
-121--3879688-Это то, что я использую в текущем проекте, не было никаких проблем. Посмотрите, если вам больше повезло с этим форматом:
jQuery.expr[':'].Contains = function(a, i, m) {
return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};
В jQuery 1.8 API для этого изменен, jQuery 1.8 + версия:
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
return function( elem ) {
return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
Вы можете протестировать его здесь . Для получения более подробной информации о селекторах 1.8 + ознакомьтесь с вики Sizzle здесь .