Если атрибут data
был добавлен с помощью метода jQuery data()
, то он не будет доступен в DOM, поэтому селекторы атрибутов не будут работать - как вы обнаружили.
Альтернативой является использование filter()
, например:
var $button = $('button').filter(function() {
return $(this).data('attrName') == 'attrValue';
});
Для C http://codepad.org/ в браузере действительно превосходен. Выполняет код и все.
Для выполнения отрывков JavaScript я использую большую часть консоли Firebug и Google Chrome JavaScript.
Для F# я использую Интерактивную Консоль.
Я иногда хочу попробовать что-то очень короткое только для подтверждения семантики. Начиная с создания временного файла и включения шаблона занимает больше чем 30 секунд, у меня есть этот сценарий:
#!/bin/sh
body="$1"
out=$(mktemp /tmp/ccrun-XXXXXX)
src=${out}.c
cat > ${src} <<EOF
#include <limits.h>
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define UNUSED __attribute__((unused))
int main(int UNUSED argc,char UNUSED *argv[])
{
EOF
echo "$body" >> ${src}
echo -e "return 0;\n}" >> ${src}
cc -std=c99 -Wall -Wextra ${CCRUN_FLAGS} -o ${out} ${src} -lm
shift
echo ${out} "$@"
${out} "$@"
#rm ${out} ${src}
Демонстрационный вызов (этот код статически инициализирует массив указателей функции) похож:
$ ccrun 'int f(int a){return a+1;} int g(int a){return a+2;} int (*farr[2])(int) = {f,g}; for (int i=0; i<2; i++) printf("%d %d\n",i,farr[i](i));'
/tmp/ccrun-6nT4Wo
0 1
1 3
Если я хочу внести мало изменений, я просто редактирую командную строку. Если это станет громоздким на командной строке, то я отредактирую временный файл в этом случае /tmp/ccrun-6nT4Wo.c
. Параметры командной строки к исполняемому файлу могут быть даны после программы (первый аргумент). Исполняемый файл оставляют на месте, таким образом, он может быть выполнен без перекомпиляции. Можно сделать что-то подобное для любого языка.
В Ruby можно использовать Интерактивный Ruby Shell.
Также похоже, что гуру в моно проекте пошел и сделал интерактивное C#. YAY
Для Python и Sage попробуйте http://live.codenode.org . Это также проект с открытым исходным кодом, лицензированный под BSD, поэтому его можно загрузить и запустить с вашего собственного компьютера, дополнительная информация здесь: http://codenode.org