样式化生成GUID的ID

时间:2015-08-07 17:25:38

标签: javascript jquery css asp.net-mvc

我正在寻找一个特定的jqueryui对话框,以便它自己居中。 问题是ID总是会更改,因为它是作为控制器中的GUID生成的。如何选择一直在变化的ID,以便我可以居中?

这是在控制器中

ViewBag.UniqueID = Guid.NewGuid().ToString();

这是在cshtml

<div class="__helpItemArea" id='@String.Format("div{0}", ViewBag.UniqueID)' style='@(ViewBag.WindowWidth==null ? "" : String.Format("width:{0}px;",ViewBag.WindowWidth)) @(ViewBag.WindowHeight==null ? "" : String.Format("height:{0}px;",ViewBag.WindowHeight)) '>

正如您所看到的,这会生成div ID的GUID,我无法选择特定的div来实际设置样式。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您最好的选择是使用属性开头选择器

from plone.directives import form
from zope import schema

class IMySchema(form.Schema):

    title = schema.TextLine(title=u"Title")

@form.default_value(field=IMySchema['title'])
def default_title(data):
    return data.context.suggested_title

答案 1 :(得分:0)

因为您的div Id's是动态生成的,而且他们是GUID并且您不想使用class因为它也用在其他元素上。我建议您使用jquery data 属性。

因此,我们假设您的data-item='helpArea'

上有数据属性div

因此,为了设置这些div的样式,您只需使用以下代码

即可
$('#test').on('click', function() {
    $('div[data-item="helpArea"]').each(function() {
        $(this).css('background-color', 'slategrey');
        $(this).css('color', 'white');
    });
});

此处有一个示例 JSFIDDLE 。希望这有帮助。