尝试将类“复选标记”添加到ID为“partnered”的i
$(document).ready(function () {
jQuery('span:contains("true")').addClass('checkmark');
});
此代码工作正常,但将类直接附加到它检查的位置。如何将此类附加到完全不同的i
元素?
答案 0 :(得分:1)
理解你的问题有点困难,但如果我理解正确的话
“将id复选标记添加到已经id合作的i。我怎样才能将这个类附加到一个完全不同的i元素?”
然后它很简单
$(document).ready(function () {
$('i[id^="<desired id name>"]').addClass('checkmark');
});
注意:从html / css的角度来看,将它作为id而不是类似乎是相当不实际的
答案 1 :(得分:0)
使用jQuery父选择器:
$(document).ready(function () {
jQuery('span:contains("true")').parent().addClass('checkmark');
});
甚至更安全,您可以使用.closest
:
$(document).ready(function () {
jQuery('span:contains("true")').closest('i.someClass').addClass('checkmark');
});
答案 2 :(得分:0)
以下是您在纯JavaScript中的答案:
// Get the element with ID 'partnered'
// Get a <span> element (create one if there's none)
var partnered = Document.prototype.getElementById.call(document, 'partnered'),
span = (
Document.prototype.querySelector.call(document, 'span') ||
Document.prototype.createElement.call(document, 'span')
);
// Custom function
function addClass() {
var args = [... arguments].slice(1),
$args = args.length,
element = arguments[0];
// Loop through arguments to update them
for (var i = 0; i < $args; i += 1)
args[i] = String(args[i]);
// Loop through arguments after updating all of them
for (var i = 0; i < $args; i += 1) {
// Cache the index
var className = args[i];
// Append new class name
element.setAttribute(
'class',
// Get the current class
((element.getAttribute('class') || '')
// Remove existing duplicates of the class to add
.replace(RegExp('\\b' + className + '\\b', '')
// Keep the class attribute tidy
// and add the class
.trim() + ' ' + className).trim()
)
}
}
/* Synchronously
A while loop could work too if you're certain enough.
*/
if (span.textContent || span.innerText)
addClass(partnered, 'checkmarked');
/* Asynchronously */
(function check() {
if (span.textContent || span.innerText)
addClass(partnered, 'checkmarked');
else
typeof requestAnimationFrame == 'function' ?
requestAnimationFrame(check) :
setTimeout(check)
})
答案 3 :(得分:0)
使用
解决if ($('span#ispartner:contains("true")').length > 0) {
$("#partnered").addClass("checkmark");
}
感谢您的帮助!