php - 更改程序生成的选择元素列表中特定选择元素的背景颜色

标签 php jquery html css

我正在尝试使用 jQuery 根据在其中选择的选项更改选择元素的背景颜色。

为了生成选择元素,我使用了以下代码:

while ($qrow = $qquery->fetch(PDO::FETCH_ASSOC)) {
            $aqanswer = "qAnswer" . $qrow['questionID'] . "";
            $aqcomments = "qComments" . $qrow['questionID'] . "";
            echo "<tr><td class='auditf'>" . $qrow['qDesc'] . "</td><td class='auditm'><select name='qAnswer" . $qrow['questionID'] . "' form='entryform' id = 'selectqAnswer". $qrow['questionID'] ."'>";
            if (isset($_SESSION[$aqanswer])) {
                if ($_SESSION[$aqanswer] === 'Green') {
                    echo "<option value='Green' selected='true' class = 'green'>Green</option>";
                    echo "<option value='Red' class='red'>Red</option>";
                } elseif ($_SESSION[$aqanswer] === 'Red') {
                    echo "<option value='Green' class ='green'>Green</option>";
                    echo "<option value='Red' selected='true' class = 'red'>Red</option>";
                }
                unset($_SESSION[$aqanswer]);
            } else {
                echo "<option value='Green' selected='true' class = 'green'>Green</option>";
                echo "<option value='Red' class = 'red'>Red</option>";
            }
            echo "</select></td><td class='auditl'><textarea name='qComments" . $qrow['questionID'] . "' rows='3' cols='30' maxlength='255' value='N/A'>";
            if (isset($_SESSION[$aqcomments])) {
                echo $_SESSION[$aqcomments];
                unset($_SESSION[$aqcomments]);
            } else {

            }
            echo "</textarea></td></tr>";
        }

还有我的 jQuery:

$("[id^=selectqAnswer]").change(function () {
    var color = $("option:selected", this).attr("class");
    $("[id^=selectqAnswer]").attr("class", color);
});

现在这确实有效,但它显然会导致页面上的每个框都发生变化。问题是,页面上的框数可以根据用户选项更改,因此我没有可以在我的 jQuery 中单独引用的固定选择 ID 列表。我试过用谷歌搜索这个问题,但每一个结果都在谈论具体命名 ID,而不是使用程序生成的 ID。当我事先不知道 ID 具体是什么时,如何根据所选的选择选项仅更改特定选择元素的背景颜色。

最佳答案

$("[id^=selectqAnswer]").attr("类", 颜色);

这将改变每个#selectqAnswer 选择的颜色,如果你想改变当前选择的颜色使用this

Javascript

$(this).attr("class", color);

关于php - 更改程序生成的选择元素列表中特定选择元素的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082908/

相关文章:

php - 如何在 php 中创建类似 twitter 的 search.json

jquery - 使用 jQuery 测量最高 UL 标签

javascript - 使用 jquery 将 div 类定位在另一个 div 旁边

php - 在 html 文本区域中输入引号和双引号,而数据库中的插入操作失败。是否可以?

html - 移动设备上的网站标题 div 问题

php - preg_match 查找并替换字符串模式

php - 奇怪的 PHP 语法

php - 防止Mysql覆盖数据

javascript - 从 jquery ajax 请求发送数据不起作用

html - 如何将字体很棒的图标更改为线条很棒的图标