从主题 - "jQuery - setting the selected value of a select control via its text description" - 我用它来选择我的价值
$("#PersonList option").filter(function() {
return $(this).val() == <?php $PHPUser ?>;
}).attr('selected', true);
但是,如果我也想用黄色打扮并更改文字,那该怎么办呢。
我可以根据需要重复......但这似乎过度编码......
ADD YELLOW:
$("#PersonList option").filter(function() {
return $(this).val() == <?php $PHPUser ?>;
}).addClass(UserAccent);
添加文字:
$("#PersonList option").filter(function() {
return $(this).val() == <?php $PHPUser ?>;
}).innerText('Myself: ' + $PHPUser);
我在一次评估中如何做到这一点?
答案 0 :(得分:2)
当遇到此问题时,通常的方法是将过滤后的集存储在变量中:
var elements = $("#PersonList option").filter(function() {
return $(this).val() == <?php $PHPUser ?>;
});
elements.prop('selected', true);
elements.addClass(UserAccent);
elements.text('Myself: ' + $PHPUser);
这很好,并且不需要任何特定的JQuery知识。
但jQuery启用了链接,大多数函数返回接收器,以便您调用其他函数,这样就可以执行此操作:
$("#PersonList option").filter(function() {
return $(this).val() == <?php $PHPUser ?>;
}).prop('selected', true)
.addClass(UserAccent)
.text('Myself: ' + $PHPUser);
正如adeneo所注意到的,你应该使用prop来设置一个像selected
这样的布尔元素属性。
答案 1 :(得分:1)
你只是链接那里:
$("#PersonList option").filter(function() {
return this.value == "<?php echo $PHPUser; ?>";
}).prop('selected', true)
.addClass('someClass')
.text('Myself: <?php echo $PHPUser; ?>');