我试图做一个简单的选择,生成下一个选择框... 但我似乎无法使其发挥作用
所以,你可以看到我正在创建具有ID和父级的div,当我点击第一个选择值时,生成带有div和父值的下一个选择框。
这是jQuery,但由于某种原因,我无法理解为什么它不起作用。
$(document).ready(function() {
var i = 1;
var t = '#ss' + i;
$(t).change(function() {
i++;
t = '#ss' + i;
var pick = $(this).val();
$('#picks div').each(function() {
if ($(this).attr('parent') == pick) {
$('#ss' + i).append('<option value=' + $(this).text() + ' >' + $(this).text() + '</option>');
}
$('#ss' + i).removeAttr('disabled');
})
console.log(t);
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='picks'>
<div id='29' parent='26'>Pick1</div>
<div id='30' parent='29'>Pick11</div>
<div id='31' parent='26'>Pick</div>
</div>
<select id="ss1">
<option >First pick</option>
<option value="26">Angri</option>
<option value="27">lands</option>
<option value="28">tree</option>
</select>
<select id="ss2" disabled>
<option >Secound Pick</option>
</select>
<select id="ss3" disabled>
<option>Third Pick</option>
</select>
这是一个jsfiddle jsfiddle
答案 0 :(得分:0)
下面的代码只会将更改侦听器附加到第一个ss ss1
,因此当您更改ss2
时,永远不会调用更改函数。
var i = 1;
var t = '#ss' + i;
$(t).change(function() {
您可以通过在每个选择上添加一个类并使用$(".myClass").change(function() {
或者您可以将侦听器附加到所有选择$("select").change(function() {
option
标记的值也不包含“父”号。在这种情况下,它将是Pick
,Pick1
或Pick11
。
$('#ss' + i).append('<option value=' + $(this).text() + ' >' + $(this).text() + '</option>');
答案 1 :(得分:0)
这是你拍摄的吗? https://jsfiddle.net/6c5t8ort/
有几件事,
Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer
Sub RepsolLogin()
Dim MyHTML_Element As IHTMLElement
Dim MyURL As String
Dim form As HTMLFormElement
MyURL = "https://login.repsol.com/es/Landing/AuthnPage?returnUrl=https://www.repsol.com/es_es/"
Set MyBrowser = New InternetExplorer
MyBrowser.Silent = True
MyBrowser.navigate MyURL
MyBrowser.Visible = True
Do
DoEvents
Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.document
Do While HTMLDoc.getElementById("gigya-login-form") Is Nothing
DoEvents
Loop
Set form = HTMLDoc.getElementById("gigya-login-form")
form.all.UserName.Value = "xxx@xxx.com" 'Enter your email id here
form.all.Password.Value = "password" 'Enter your password here
form.submit
End Sub
这只会将var t = '#ss' + i;
$(t).change(function() {
事件添加到第一个下拉列表中。如果你给jQuery一个选择器(一个类),如果将事件添加到所有元素。您设置change
变量的方式也意味着它会在每次更改时递增。