Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让javascript函数只在按类划分的div中工作?_Javascript_Jquery_Html - Fatal编程技术网

如何让javascript函数只在按类划分的div中工作?

如何让javascript函数只在按类划分的div中工作?,javascript,jquery,html,Javascript,Jquery,Html,拥有一个HTML/javascript: <section class="on"> <select id="comboA" onchange="getComboA(this)"> <option value="[xfvalue_monthprice1]">100</option> <option value="[xfvalue_monthprice2]">200</option>

拥有一个HTML/javascript:

<section class="on">
    <select id="comboA" onchange="getComboA(this)">
        <option value="[xfvalue_monthprice1]">100</option>
        <option value="[xfvalue_monthprice2]">200</option>
        <option value="[xfvalue_monthprice3]">300</option>
        <option value="[xfvalue_monthprice5]">400</option>
    </select>

    <div id="prdiv">
        <p id="prid"></p>
    </div>
</section>

<script>
    function getComboA(sel) {
        var value = sel.value;  
        document.getElementById("prid").innerHTML = value;
    }
</script>

节数超过2个。本节的开/关等级为双戊烯开/关。如何强制函数仅在带有on类的部分中工作?

由于您已使用jquery标记了问题,因此可以使用jquery将仅更改事件的元素与特定类名绑定

随着类名的动态更改,您还需要使用委托

$(document).on("change", "section.on select", function() {
    $("#prid").html($(this).val());
});

我想你需要一个javascript解决方案。 以下是我的尝试:

HTML:


仅适用于第一节。我猜这是因为前一节的主要部分,也有课。那么,我们怎样才能得到不是.on select,而是.on select的section。提前谢谢!效果很好。但我也必须选择prid,而不是prid。现在它工作了,非常感谢!如果它对您有帮助,请将其标记为anwer:也有效,但仅适用于第一节。需要,在prid上。请参见上面的,用jquery解决。谢谢可以通过“querySelector”来实现,但其功能有限。另外,供您选择直系子女时参考。如果您注意到,我已将prdiv从这两个部分中分离出来,并将其保留在末尾。根据要求,脚本只针对class=on的部分运行
<section class="on">
    <select id="comboA">
        <option value="100">100</option>
        <option value="200">200</option>
        <option value="300">300</option>
        <option value="400">400</option>
    </select>
</section>
<section class="off">
    <select id="comboB">
        <option value="100">100</option>
        <option value="200">200</option>
        <option value="300">300</option>
        <option value="400">400</option>
    </select>
</section>
<div id="prdiv"><p id="prid"></p> </div>
var selCombo = document.querySelector(".on select");
selCombo.addEventListener("change", function() {
    var value = this.value;  
    document.getElementById("prid").innerHTML = value;
});