从现有元素中删除id属性

时间:2013-07-30 07:56:05

标签: jquery

我试图删除与eng_app相关联的id属性,但是下面的代码我看错了id属性。我看到里面的日志

这是我到目前为止尝试的代码

 var htm = $("#addin").find(".eng_data:first-child").html();
 if($(htm).find(".eng_app"))
 {
    console.log("Inside if");
console.log($(this).removeAttr("id"));
 }
 var new_htm = "<div class='eng_data'>" +htm+"</div>";                                  
 $("#addin").append(new_htm);   

HTML:

 <div id="eng_data" class="eng_data">


      <select class="eng_app">
      <option value="-1" selected="">Choose application</option>
      </select>
      <input type="text" class="grades"  placeholder="grades"/>
      <a href="#" ><img src="images/add.gif" width="21" class="addrow"/></a>

      </div>

4 个答案:

答案 0 :(得分:0)

试试这个:

$(htm).find(".eng_app").removeAttr('id');
希望它会有所帮助

答案 1 :(得分:0)

你应该这样做:

$(htm).find(".eng_app").removeAttr('id');
console.log($(htm).find(".eng_app").attr('id'));

答案 2 :(得分:0)

请改为尝试:

var htm = $("#addin").find(".eng_data:first-child").html();
var eng_app = $(htm).find(".eng_app");
if (eng_app.length > 0)
{
    eng_app.removeAttr("id");
    console.log(eng_app.attr("id"));
}
var new_htm = "<div class='eng_data'>" + htm + "</div>";                                  
$("#addin").append(new_htm);

你的问题是:

  1. if($(htm).find(".eng_app"))将始终返回true,因为即使没有匹配也会创建一个空数组。我的建议是测试length
  2. 我不认为您处于已映射this的上下文中,因此它仍然只是引用了window对象。
  3. 希望这有帮助。

答案 3 :(得分:0)

试试这个

$("#addin").find(".eng_data:first-child").children(".eng_app").removeAttr('id');

希望它能奏效。