我有一个DOM元素,其ID类似于:
something[500]
Run Code Online (Sandbox Code Playgroud)
这是由我的Ruby on Rails应用程序构建的.我需要能够通过jQuery获取此元素,以便我可以遍历DOM以删除其父级的父级,其父级具有我之前无法访问的变量ID.
有谁知道我怎么能这样做?以下代码似乎不起作用:
alert($("#something["+id+"]").parent().parent().attr("id"));
Run Code Online (Sandbox Code Playgroud)
经过进一步检查,以下内容:
$("#something["+id+"]")
Run Code Online (Sandbox Code Playgroud)
返回一个对象,但当我在其上运行".html()"或".text()"时,结果始终为null或只是一个空字符串.
任何帮助将不胜感激.
我希望开始为一些辅助项目使用一个键/值存储(主要是作为一种学习体验),但是最近出现了很多,我不知道从哪里开始.只是从记忆中列出,我可以想到:
而且我确信在搜索工作中还有更多内容.有了所有信息,很难在所有竞争对手之间找到可靠的比较.我的标准和问题是:
编辑:
到目前为止看起来Redis是最好的解决方案,但这只是因为我得到了一个坚实的回应(来自ardsrk).我正在寻找像他这样的更多答案,因为他们指出了我有用的定量信息的方向.您使用哪个Key-Value商店,为什么?
编辑2:
如果有人有CouchDB,Riak或MongoDB的经验,我很乐意听到你的经历(如果你能对它们中的几个进行比较分析,那就更是如此)
假设我有一个看起来像这样的字符串:
str = "The &yquick &cbrown &bfox &Yjumps over the &ulazy dog"
Run Code Online (Sandbox Code Playgroud)
您会注意到字符串中有很多位置,其中有一个&符号,后跟一个字符(例如"&y"和"&c").我需要用字典中的适当值替换这些字符,如下所示:
dict = {"&y":"\033[0;30m",
"&c":"\033[0;31m",
"&b":"\033[0;32m",
"&Y":"\033[0;33m",
"&u":"\033[0;34m"}
Run Code Online (Sandbox Code Playgroud)
最快的方法是什么?我可以手动找到所有的&符号,然后循环通过字典来改变它们,但这似乎很慢.做一堆正则表达式替换似乎也很慢(我的实际代码中将有一个大约30-40对的字典).
任何建议表示赞赏,谢谢.
编辑:
正如在这个问题的评论中所指出的,我的字典是在运行时之前定义的,并且在应用程序生命周期的过程中永远不会改变.它是ANSI转义序列的列表,其中将包含大约40个项目.我要比较的平均字符串长度大约为500个字符,但最多可达5000个字符(但这些字符很少见).我目前也在使用Python 2.6.
编辑#2 我接受Tor Valamos的回答是正确的,因为它不仅提供了有效的解决方案(虽然它不是最好的解决方案),而是考虑了所有其他解决方案并做了大量的工作来比较所有这些.这个答案是我在StackOverflow上遇到过的最好,最有帮助的答案之一.感谢你.
我来自Rails背景,并且在使用Django中提供的"关联方法"时遇到了一些麻烦.我有两个模型(为了简洁起见已经简化),如下所示:
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
companies = models.ManyToManyField('Company', blank=True)
class Company(models.Model):
name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
根据Django文档:
"具有ManyToManyField的模型无关紧要,但您只应将其放在其中一个模型中 - 而不是两者."
所以我理解,如果我有一个用户的实例,称为用户,我可以这样做:
user.companies
Run Code Online (Sandbox Code Playgroud)
我的问题是如何反过来?如何获取属于公司实例的所有用户,假设公司:
company.users # This doesn't work!
Run Code Online (Sandbox Code Playgroud)
这样做的惯例是什么?我读过的文档并没有真正涵盖这一点.我需要关联工作两种方式,所以我不能简单地将它从一个模型移动到另一个模型.
是否可以通过jQuery获取A标签的onClick属性的当前值?
例如,我有:
<a href="http://www.google.com" id="google" onclick="alert('hello')">Click</a>
Run Code Online (Sandbox Code Playgroud)
我想得到onclick代码,以便我可以存储它供以后使用(因为我将稍微更改onclick事件).
有可能做这样的事情:
var link_click = $("#google").onclick;
Run Code Online (Sandbox Code Playgroud)
要么:
var link_click = $("#google").click;
Run Code Online (Sandbox Code Playgroud)
所以,稍后在我的代码中,我可以重新应用该代码,或者必要时使用eval()它?
我有一个Rails应用程序,我希望为它添加某种WebSocket支持.从各种Google搜索,似乎最好的基于Ruby的WebSocket解决方案是在EventMachine上运行的em-websocket.
我想知道是否有办法将EventMachine反应器"集成"到Rails中?我在哪里放置初始化代码?这是实现这个目标的正确方法吗?
我已经看到这个回到Sinatra的例子来做一个EventMachine GET请求,但这并不是我想要的.
任何帮助表示赞赏.
我正在通过学习Twisted工作,偶然发现了一些我不太确定我非常喜欢的东西 - "Twisted Command Prompt".我正在摆弄我的Windows机器上的Twisted,并尝试运行"聊天"示例:
from twisted.protocols import basic
class MyChat(basic.LineReceiver):
def connectionMade(self):
print "Got new client!"
self.factory.clients.append(self)
def connectionLost(self, reason):
print "Lost a client!"
self.factory.clients.remove(self)
def lineReceived(self, line):
print "received", repr(line)
for c in self.factory.clients:
c.message(line)
def message(self, message):
self.transport.write(message + '\n')
from twisted.internet import protocol
from twisted.application import service, internet
factory = protocol.ServerFactory()
factory.protocol = MyChat
factory.clients = []
application = service.Application("chatserver")
internet.TCPServer(1025, factory).setServiceParent(application)
Run Code Online (Sandbox Code Playgroud)
但是,要将此应用程序作为Twisted服务器运行,我必须通过"Twisted命令提示符"运行它,并使用以下命令:
twistd -y chatserver.py
Run Code Online (Sandbox Code Playgroud)
有没有办法更改代码(设置Twisted配置设置等),以便我可以通过以下方式运行它:
python chatserver.py
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索,但搜索条件似乎太模糊,无法返回任何有意义的回复.
谢谢.
我已经知道了一个应用程序,我想继续学习更多关于Twisted和WebSockets的知识.我正在考虑将以前编写的IRC Bot集成到Web应用程序中.据我所知,我需要三个反应器来使它工作:
在我看来,这是有道理的.似乎有可能.有没有人有任何多个反应器在不同的线程中运行的例子,或者这是我想象的那些在扭曲的当前版本中无法完成的事情.
是否可以(或应该)进行任何架构更改以最小化反应器数量等?
谢谢你的帮助.
给定n个整数的排序数组,如下所示:
ary = [3, 5, 6, 9, 14]
Run Code Online (Sandbox Code Playgroud)
我需要计算每个元素和数组中下一个元素之间的差异.使用上面的例子,我最终得到:
[2, 1, 3, 5]
Run Code Online (Sandbox Code Playgroud)
开始数组中可能包含0,1或许多元素,我将要处理的数字将更大(我将使用纪元时间戳).我尝试过以下方法:
times = @messages.map{|m| m.created_at.to_i}
left = times[1..times.length-1]
right = times[0..times.length-2]
differences = left.zip(right).map { |x| x[0]-x[1]}
Run Code Online (Sandbox Code Playgroud)
但我上面的解决方案既不是最优的,也不理想.任何人都可以帮我一把吗?
我正在开发一个主要用作API的应用程序(除了一些次要视图,例如会话/注册,这将是"标准").我喜欢在Railscast#350中最终确定的方法:对API进行版本控制,然后遵循它.我的路线看起来像:
namespace :api, :defaults => {:format => 'json'} do
scope :module => :v1, :constraints => ApiConstraints.new(:version => 1, :default => false) do
resources :posts, :only => [:create, :show, :destroy, :index]
end
scope :module => :v2, :constraints => ApiConstraints.new(:version => 2, :default => true) do
resources :posts, :only => [:create, :show, :destroy, :index]
end
end
Run Code Online (Sandbox Code Playgroud)
在每个路径中,我的Constraint是一个新的ApiConstraints对象,它位于我的./lib文件夹中.这个类看起来像这样:
class ApiConstraints
def initialize(options)
@version = options[:version]
@default = options[:default]
end
def matches?(req)
@default || req.headers['Accept'].include?("application/vnd.MYAPP.v#{@version}")
end
end
Run Code Online (Sandbox Code Playgroud)
现在,手动测试时,一切都按预期工作.在我的API中,每个版本可能有5到10个控制器,并且不希望测试API约束适用于每个单独的控制器,因为这没有意义.我正在寻找一个测试我的API约束的spec文件,但我不确定该规范的放置位置. …
python ×4
ruby ×3
javascript ×2
jquery ×2
twisted ×2
comparison ×1
constraints ×1
database ×1
django ×1
dom ×1
eventmachine ×1
events ×1
networking ×1
performance ×1
reactor ×1
regex ×1
replace ×1
sockets ×1
string ×1
websocket ×1