我想将一个Html元素中的所有属性放入一个数组:就像我有一个jQuery对象,其中html如下所示:
<span name="test" message="test2"></span>
Run Code Online (Sandbox Code Playgroud)
现在一种方法是使用这里描述的xml解析器,但后来我需要知道如何获取我的对象的html代码.
另一种方法是使用jquery,但如何?属性的数量和名称是通用的.
谢谢
顺便说一句:我无法使用document.getelementbyid或类似的东西访问该元素.
我下面有一个标志枚举.
[Flags]
public enum FlagTest
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4
}
Run Code Online (Sandbox Code Playgroud)
我无法将if语句评估为true.
FlagTest testItem = FlagTest.Flag1 | FlagTest.Flag2;
if (testItem == FlagTest.Flag1)
{
// Do something,
// however This is never true.
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
给定具有零个或多个data-*属性的任意HTML元素,如何检索数据的键值对列表.
如上:
<div id='prod' data-id='10' data-cat='toy' data-cid='42'>blah</div>
Run Code Online (Sandbox Code Playgroud)
我希望能够以编程方式检索此:
{ "id":10, "cat":"toy", "cid":42 }
Run Code Online (Sandbox Code Playgroud)
使用jQuery(v1.4.3),$.data()如果事先知道密钥,则使用单个数据位是很简单的,但是如何使用任意数据集来完成这一操作并不明显.
我正在寻找一个'简单'的jQuery解决方案,如果存在,但不会介意低级别的方法.我试图解析,$('#prod').attributes但我缺乏javascript-fu让我失望.
customdata做我需要的.但是,包括一个jQuery插件只是为了它的一小部分功能似乎是一种矫枉过正.
眼球的源代码帮助我修复了自己的代码(并改进了我的javascript-fu).
这是我提出的解决方案:
function getDataAttributes(node) {
var d = {},
re_dataAttr = /^data\-(.+)$/;
$.each(node.get(0).attributes, function(index, attr) {
if (re_dataAttr.test(attr.nodeName)) {
var key = attr.nodeName.match(re_dataAttr)[1];
d[key] = attr.nodeValue;
}
});
return d;
}
Run Code Online (Sandbox Code Playgroud)
正如在接受的答案中所证明的那样,使用jQuery(> = 1.4.4)解决方案是微不足道的.$('#prod').data()将返回所需的数据字典.
问题基于MSDN示例.
假设我们在独立桌面应用程序中有一些带有HelpAttribute的C#类.是否可以枚举具有此类属性的所有类?以这种方式识别课程是否有意义?自定义属性将用于列出可能的菜单选项,选择项将带到此类的屏幕实例.课程/项目的数量将缓慢增长,但我认为这样我们可以避免在其他地方列举所有课程/项目.
我有一个python对象,有几个属性和方法.我想迭代对象属性.
class my_python_obj(object):
attr1='a'
attr2='b'
attr3='c'
def method1(self, etc, etc):
#Statements
Run Code Online (Sandbox Code Playgroud)
我想生成一个包含所有对象属性及其当前值的字典,但我想以动态的方式进行(所以如果以后我添加另一个属性,我也不必记得更新我的函数).
在PHP中,变量可以用作键,但是python中的对象是不可编写的,如果我使用点符号,它会创建一个名为my var的新属性,这不是我的意图.
只是为了让事情更清楚:
def to_dict(self):
'''this is what I already have'''
d={}
d["attr1"]= self.attr1
d["attr2"]= self.attr2
d["attr3"]= self.attr3
return d
Run Code Online (Sandbox Code Playgroud)
·
def to_dict(self):
'''this is what I want to do'''
d={}
for v in my_python_obj.attributes:
d[v] = self.v
return d
Run Code Online (Sandbox Code Playgroud)
更新:使用属性我只是指这个对象的变量,而不是方法.
如何使用xslt在以下xml中获取attribute1(blah)的值:
<name attribute1="blah" attribute2="blahblah">
</name>
Run Code Online (Sandbox Code Playgroud) 我在MVC视图上有以下字段:
@Html.TextBoxFor(model => model.Course.Title, new { data_helptext = "Old Text" })</span>
Run Code Online (Sandbox Code Playgroud)
在单独的js文件中,我想将data-helptext属性设置为字符串值.这是我的代码:
alert($(targetField).data("helptext"));
$(targetField).data("helptext", "Testing 123");
Run Code Online (Sandbox Code Playgroud)
该alert()呼叫工作正常,它显示在警报对话框文本"古文字".但是,将data-helptext属性设置为"测试123" 的调用不起作用."旧文本"仍然是属性的当前值.
我是否错误地使用了对data()的调用?我在网上看了这个,我看不出我做错了什么.
这是HTML标记:
<input data-helptext="Old Text" id="Course_Title" name="Course.Title" type="text" value="" />
Run Code Online (Sandbox Code Playgroud) model-view-controller jquery attributes custom-data-attribute
这真的令人难以置信,但真实.此代码不起作用:
[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)]
public class Range : Attribute
{
public decimal Max { get; set; }
public decimal Min { get; set; }
}
public class Item
{
[Range(Min=0m,Max=1000m)] //compile error:'Min' is not a valid named attribute argument because it is not a valid attribute parameter type
public decimal Total { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
虽然这有效:
[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)]
public class Range : Attribute
{
public double Max { get; set; }
public double Min { get; set; }
}
public class Item …Run Code Online (Sandbox Code Playgroud) 是否有任何有意义的区别:
class A(object):
foo = 5 # some default value
Run Code Online (Sandbox Code Playgroud)
与
class B(object):
def __init__(self, foo=5):
self.foo = foo
Run Code Online (Sandbox Code Playgroud)
如果您要创建大量实例,那么这两种样式的性能或空间要求是否存在差异?当您阅读代码时,您是否认为两种样式的含义有显着差异?