选择字符串中的元素

时间:2016-05-27 14:20:27

标签: javascript jquery

我有一个字符串:

var html = '<select">\
<option></option>\
<option>Mr</option>\
<option>Mrs</option>\
<option>Ms</option>\
<option>Master</option>\
<option>Miss</option>\
<option>Dr</option>\
<option>TBA</option>\
</select>';

我想在{&#39; Master&#39;选项。我怎么能这样做?

我试过了:

selected

我不知道如何像搜索DOM一样搜索字符串。

JSBIN

4 个答案:

答案 0 :(得分:4)

为什么不像这样做一个字符串替换:

html = html.replace('<option>Master</option>','<option selected>Master</option>');

答案 1 :(得分:3)

使用 :contains() 选择器并使用 attr()

设置属性

$(this).html() == "Master";
}).prop('selected', true));
var html = '<select>\
<option></option>\
<option>Mr</option>\
<option>Mrs</option>\
<option>Ms</option>\
<option>Master</option>\
<option>Miss</option>\
<option>Dr</option>\
<option>TBA</option>\
</select>';

console.log(
  $(html)
  .find('option:contains("Master")') // getoption which contains master
  .attr('selected', true) // set selected attribute
  .end()[0].outerHTML // back to previous selector and get dom  object and it's outerHTML property
)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

使用 filter() 方法

var html = '<select>\
<option></option>\
<option>Mr</option>\
<option>Mrs</option>\
<option>Ms</option>\
<option>Master</option>\
<option>Miss</option>\
<option>Dr</option>\
<option>TBA</option>\
</select>';

console.log(
  $(html)
  .find("option") // get all options
  .filter(function() { // filter option which contains master
    return $(this).text() == "Master";
  }).attr('selected', true) // set selected attribute
  .end() // back to option selector
  .end()[0].outerHTML // back to html selector and get dom  object and it's outerHTML property
)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:1)

将您的代码更改为:

/*jshint multistr: true */
var html = 
 '<select class="form-control honorific">\
   <option>Mr</option>\
   <option>Mrs</option>\
   <option>Ms</option>\
   <option>Master</option>\
   <option>Miss</option>\
   <option>Dr</option>\
   <option>TBA</option>\
 </select>';

$(function() {
    var temp = "Master"; 
    $('body').append(html);
    $(".form-control").val(temp);
});

答案 3 :(得分:-2)

这可能有所帮助:

var elements = $(theHtmlString);
var found = $('.FindMe', elements);

来源:How to get an HTML element from a string with jQuery