jQuery - 通过innerHTML在字符串中查找标记并向其添加属性

时间:2013-02-22 08:36:42

标签: jquery find

我的HTML文件中有以下代码

   <select>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <!-- ......... -->
        <option>50000</option>
   </selcet>

使用jQuery我得到了

      var subHTML=$("select").html();

我可以在subHTML字符串中通过innerHTML找到一个选项标签,插入属性“selected”,然后将编辑后的字符串放回到select标签中

      $("select").html(editedString);  

修改

我试过

  var strel=$(subHtml).find('option:contains("123")').attr('selected','selected');
  $("select").html(strel);       

但它只为select标记添加了一个选项。

4 个答案:

答案 0 :(得分:1)

这应该有效。 (未经测试)。

var to_replace = $("select").find('option:contains("The text i want to find")');
to_replace.attr("selected", "selected");
to_replace.text("The new text");

答案 1 :(得分:0)

$('option').filter(function() {
   if(this.innerHTML === '123') {
      $(this).attr('its-me', 1);
      return true;
   }
   return false;
});

修改 ,或只是:

$('option').filter(function() {
   return this.innerHTML === '123';
}).attr('its-me', 1);

答案 2 :(得分:0)

jQuery Contains选择器会有所帮助。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    $(function()
    {
        var searchReplace = $("select").find('option:contains("editme")').attr("selected", "selected").text("foundme");
    });

</script>

<select>
    <option>1</option>
    <option>2</option>
    <option>editme</option>
    <option>3</option>
    <option>50000</option>
</selcet>

答案 3 :(得分:0)

这是工作样本:

Select

如果这是您的HTML:

<select>
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>

您可以使用:

$("select option").each(function(){
if ($(this).text() == "2")
   $(this).attr("selected","selected");
});