Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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:使用.attr('id','val')更改'id'将不起作用_Javascript_Jquery_Html_Attr - Fatal编程技术网

Javascript jQuery:使用.attr('id','val')更改'id'将不起作用

Javascript jQuery:使用.attr('id','val')更改'id'将不起作用,javascript,jquery,html,attr,Javascript,Jquery,Html,Attr,首先,代码已经简化,只包含基本部分 因此,我有以下HTML文件single_lesson.HTML: <tr class="my_lessons"> <td> <select name="my_von" id="my_von"></select> </td> </tr> 这行不通,我也不知道为什么。 行控制台.logjQuerymy_html.children.children'my_von

首先,代码已经简化,只包含基本部分

因此,我有以下HTML文件single_lesson.HTML:

<tr class="my_lessons">
    <td>
        <select name="my_von" id="my_von"></select>
    </td>
</tr>
这行不通,我也不知道为什么。 行控制台.logjQuerymy_html.children.children'my_von';提供以下数组:

[select#my_von, prevObject: e.fn.init[7], context: undefined, jquery: "1.11.1", constructor: function, selector: ""…]
如果我打开这个数组,就会有另一个名为selectmy_von的数组。如果我打开这个,有几个字段和id:my_von就是其中之一。字段id在那里,因此我看不出它不会更改的原因。

永远不要使用children.children,尤其是对于可能未知的DOM结构,并且当id查找速度尽可能快时

通常的问题是get结果中有多个顶级元素,或者它不是以开头的有效HTML。谢谢您的评论。我没有意识到jQuerymy_html是一个对象。我解决了这个问题,只需将对象jQuerymy_html存储为一个变量,然后在更改id后将其html内容存储为另一个变量。我的代码如下:

var my_html_jquery = jQuery(my_html);
my_html_jquery.children().children('#my_von').attr('id', 'my_von1');
my_html = my_html_jquery.html();

您将HTML作为字符串获取,然后将其包装为jQuerymy_HTML,然后更改ID,但您没有对jQuery对象执行任何操作,并且原始字符串不会更改,因此再次包装它,您将获得完全相同的输出?您没有更改my_HTML的内容,id将在通过调用jQuerymy_html创建的dom对象中更新,但不会在my中存储的字符串中更新_html@adeneo:这就是我剪切粘贴得到的。。。更正:
jQuery.get('single_lesson.html', function(my_html)
{
      var $div = jQuery('<div>').html(my_html);
      $div.find('#my_von').attr('id', 'my_von1');
      // Now do whatever you want to do with $div.html() or $div.children();
}, 'html');
var my_html_jquery = jQuery(my_html);
my_html_jquery.children().children('#my_von').attr('id', 'my_von1');
my_html = my_html_jquery.html();