jquery val()实现

时间:2011-12-28 10:45:23

标签: jquery dom selenium

我有一个动态加载的表单,必须“预填充”一些数据。预先填充我的意思是必须预先选择select option input type="radiobutton"

当然,我正在使用jQuery ......

我很困惑,因为我希望.val()函数将属​​性selected="selected"添加到option元素,但事实并非如此。

那怎么办?它在DOM中改变了一些东西,但我在Firebug中找不到这个改变......

通常情况下,我不关心细节,但我正在玩Selenium测试,并希望进行一项测试,检查select option是否按预期预选,因为它没有设置{{1我想知道如何测试它?

3 个答案:

答案 0 :(得分:0)

使用attr:

.attr(“已选中”,“已选中”)

<script>

    $("select").change(function () {
          var str = "";
          $("select option:selected").each(function () {
                str += $(this).text() + " ";
              });
          $("div").text(str);
        })
        .trigger('change');
</script>

答案 1 :(得分:0)

您可以使用新的jquery .propdocs)功能来设置或测试元素的属性。

答案 2 :(得分:0)

  

那怎么办?

以下是源代码:

jQuery(elem).find("option").each(function() {
    this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
});

https://github.com/jquery/jquery/blob/255460e4836e86b86f48dd5b7d2a2cbf3f996de2/src/attributes.js#L273

上面,thisoption dom节点,所以你很接近。它设置selected属性,而不是selected属性。