Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery从脚本更改立即父属性_Javascript_Jquery - Fatal编程技术网

Javascript jquery从脚本更改立即父属性

Javascript jquery从脚本更改立即父属性,javascript,jquery,Javascript,Jquery,我是jquery的新手 如果我有一个这样的字段集,如何添加class=error这样的新属性,并从脚本中修改图例的文本 除了它们存在的事实之外,我不知道任何关于fieldset或传说的事情 <fieldSet> <legend>My Legend</legend> <script type="text/javascript"> //I want to select the legend??? </scr

我是jquery的新手

如果我有一个这样的字段集,如何添加class=error这样的新属性,并从脚本中修改图例的文本

除了它们存在的事实之外,我不知道任何关于fieldset或传说的事情

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

你试过下面的表达吗

$("legend").html();
要添加该类,请执行以下操作:

$('fieldset').addClass('error');
要修改图例文本,请执行以下操作:

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

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

根据上面的示例,以下内容将更改“legend”元素的文本并向其添加类-

$("fieldSet legend").text('New Text').addClass('newClass')
根据最终在页面上显示的其他元素,可能需要更改代码的$fieldSet图例部分

编辑

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

$("body fieldSet:first-child legend").text('New Text').addClass('newClass')
否则,您需要向字段集添加一个类或id。所以如果你的字段集是这样的-

<fieldSet class="chosen">
或者如果您添加了一个id-

<fieldSet id="chosen">

如果您是jQuery新手,请尝试使用jQuery引用。

此方法存在解决方法

<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>

加载文档时,将按顺序计算所有脚本元素。因此,当您在内联脚本元素中使用document.write时,write就位于脚本的旁边。DOM可以轻松地跟踪在脚本之后生成唯一元素并引用它。您可以尝试为这样的操作创建函数。只要玩一下,我希望您会理解:

如果您的页面中有多个图例或字段集,我们如何知道要更改哪一个?您的整个页面中是否只有一个字段集?这就是为什么我要从这个脚本元素中选择最直接的字段集。虽然可能,但这样做是错误的做法,可能使用document.write。如果您可以添加用于标识字段集或图例的类、id或其他属性,则首选。这不会修改该页上的所有图例吗?字段集内的所有图例。要标识字段集,您可以向其添加一些类或id。这不会修改该页上的所有图例吗?
 $("#chosen").text('New Text').addClass('newClass')
<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>