gpt4 book ai didi

javascript - jQuery 错误,仅适用于 Explorer

转载 作者:行者123 更新时间:2023-11-28 12:51:02 24 4
gpt4 key购买 nike

我有一个自定义 jQuery 脚本,可以在除一个浏览器之外的所有浏览器中正常工作(Explorer 6、7、8?)。

该代码的目的是允许用户向其表单添加多个表单字段(如果用户想要多个电话号码或多个网址)。

它的编写方式是为了将任何具有包含“add”的类的“A”标记绑定(bind)到 jQuery 函数。

我收到的错误如下:

///////////////////////////////
Line: 240
Char: 5
Error: 'this.id.3' is null or not an object
Code: 0
///////////////////////////////

表单的 HTML:(请注意,我知道表单标签不在这里,这是较大表单的一小部分。

<ul>
<li>
<ul>
<li class="website">
<input id="website1_input" name="website[1][input]" type="text" value="www.test.org"/>
<input type="checkbox" id="website1_delete" name="website[1][delete]" class="element radio" value="1" />
<label for="website1_delete">Delete</label>
</li>
</ul>
<a href="#" id="addWebsite">add another website</a>
</li>
</ul>

现在是 jQuery:

页面上应该有一个 ul 至少包含一个 li。所有的列表都应该有一个特定的类,如“电话”或“地址”/ul 之后应该有一个具有匹配 id 的链接,例如“addPhone”或“addAddress”。 href 属性应为“#”。

function makeAddable(theClass) {
$('#add' + theClass[0].toUpperCase() + theClass.substr(1)).click(function() {
var numItems = $('.' + theClass).length;
var newItem = $('.' + theClass).eq(numItems - 1).clone();
newItem.find('input[type=text]').val('');
numItems++; // number in the new IDs

// keep ids unique, linked to label[for], and update names
// id & for look like: phone1_type, phone1_ext, phone13_p1, etc.
// names look like: phone[1][type], phone[1][ext], phone[13][p1], etc.
newItem.find('[id^=' + theClass + ']').each(function(i) {
var underscoreIndex = this.id.indexOf('_');
var idNum = this.id.substring(theClass.length, underscoreIndex);
this.id = this.id.replace(idNum, numItems);
});
newItem.find('[for^=' + theClass + ']').each(function(i) {
var jqthis = $(this);
var forAttr = jqthis.attr('for');
var underscoreIndex = forAttr.indexOf('_');
var idNum = forAttr.substring(theClass.length, underscoreIndex);
forAttr = forAttr.replace(idNum, numItems);
jqthis.attr('for', forAttr);
});
newItem.find('[name^=' + theClass + ']').each(function(i) {
var jqthis = $(this);
var nameAttr = jqthis.attr('name');
var bracketIndex = nameAttr.indexOf(']');
var idNum = nameAttr.substring(theClass.length + 1, bracketIndex);
nameAttr = nameAttr.replace(idNum, numItems);
jqthis.attr('name', nameAttr);
});

$(this).prev('ul').append(newItem);
return false;
});
}

// Automatically enable all <a href="#" id="addSomething"> links
$(function() {
$('a[href=#][id^=add]').each(function(i) {
makeAddable( this.id[3].toLowerCase() + this.id.substr(4) );
});
});

最佳答案

this.id.charAt(3).toLowerCase()

关于javascript - jQuery 错误,仅适用于 Explorer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com