jquery从脚本更改直接父属性

时间:2011-07-27 12:01:55

标签: javascript jquery

我是一个jquery新手

如果我有这样的字段集,如何添加类似class =“error”的新属性,还可以从脚本中修改图例的文本?

除了它们存在之外,我对字段集或图例一无所知

<fieldSet>
    <legend>My Legend</legend>
    <script type="text/javascript">
        //I want to select the legend???
    </script>
</fieldset>

5 个答案:

答案 0 :(得分:1)

添加课程:

$('fieldset').addClass('error');

修改图例文字:

$('fieldset legend').html('New Legend');

但是,如果您在页面上有更多信息,则需要了解有关该字段集的更多信息,因为上面的代码将修改其上的所有字段集标记。

答案 1 :(得分:1)

从上面的示例中,以下内容将更改“legend”元素的文本并为其添加一个类 -

$("fieldSet legend").text('New Text').addClass('newClass')

您可能需要更改代码的$("fieldSet legend")部分,具体取决于您最终在页面上显示的其他元素。

修改

如果你想引用一个特定的字段集,你可以做这样的事情来改变页面上的第一个字段集 -

$("body fieldSet:first-child legend").text('New Text').addClass('newClass')

否则,您需要在字段集中添加类或ID。因此,如果您的字段集看起来像这样 -

<fieldSet class="chosen">

你的jQuery需要 -

$("fieldSet.chosen legend").text('New Text').addClass('newClass')

或者如果你添加一个id -

<fieldSet id="chosen">

jQuery -

 $("#chosen").text('New Text').addClass('newClass')

答案 2 :(得分:0)

您是否尝试过以下表达式?

$("legend").html();

答案 3 :(得分:0)

如果您不熟悉jQuery,请尝试jQAPI获取jQuery引用。

答案 4 :(得分:0)

这个存在解决方法。

<fieldSet>
    <legend>My Legend 1</legend>
    <script type="text/javascript">
        var to = 'New Legend 1';
        var id = "temp" + Math.floor(Math.random()*100000);
        document.write('<span id="'+id+'"></span>');
        var temp = $('#'+id); scriptParent = temp.parent(); temp.remove();
        scriptParent.find('legend').html(to);
    </script>
</fieldset>
<fieldSet>
    <legend>My Legend 2</legend>
    <script type="text/javascript">
        var to = 'New Legend 2';
        var id = "temp" + Math.floor(Math.random()*100000);
        document.write('<span id="'+id+'"></span>');
        var temp = $('#'+id); scriptParent = temp.parent(); temp.remove();
        scriptParent.find('legend').html(to);
    </script>
</fieldset>

在加载文档时,将按顺序评估所有SCRIPT个元素。因此,当您在内联document.write元素中使用SCRIPT时,写入会在SCRIPT旁边显示。在脚本之后生成唯一元素并引用它,可以由DOM轻松跟踪。你可以尝试为这样的动作创建功能。只是玩它,我希望,你会理解:)