Как установить уникальный идентификатор для элементов пути графа SVG. График создается с помощью leaflet.js Элементы пути генерируются динамически, и мне нужно стилизовать их индивидуально, поэтому я решил присвоить им уникальный идентификатор.
<svg pointer-events = "none" class = "leaflet-zoom-animated" width = "900" height = "665" viewBox = "-75 -55 900 665" style = "transform: translate3d(-75px, -55px, 0px);">
<g>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M120 271L133 282L139 279L147 284L155 274L137 258z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M98 284L119 275L125 288L105 295z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M64 296L95 287L99 297L92 302L91 308L75 308L68 310z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M160 302L168 309L173 305L179 311L178 317L187 323L196 310L171 288z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M190 326L195 330L202 326L201 336L198 344L222 339L219 331L201 314z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M155 311L148 334L151 340L181 343L186 337z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M71 348L93 351L90 363L79 362L75 374L88 376L87 387L75 388L74 396L87 399L85 410L67 408z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M53 429L83 452L78 498L67 493L46 453L43 442L44 429z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M90 521L107 533L118 532L111 519L108 503L99 501L92 505z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M91 453L90 463L95 469L87 475L93 487L99 495L111 491L113 469L119 452L115 444z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M131 414L143 416L154 405L175 395L191 390L214 386L233 385L236 364L150 356L141 365z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M160 239L168 251L176 246L174 237L185 235L191 229L179 217z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M178 243L188 254L208 234L213 223L200 216z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M191 268L202 279L209 272L204 266L224 249L228 243L217 233z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M225 307L229 297L233 304L247 291L242 285L249 277L258 284L247 313L237 320z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M223 309L231 297L239 301L246 290L251 276L257 285L255 295L239 319z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M274 296L281 277L328 267L332 279L330 286z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M303 216L317 262L324 261L327 236L322 211z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M302 213L317 260L325 260L328 244L321 211z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M214 187L223 197L237 209L245 213L252 207L231 189L247 179L242 167z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M309 172L315 190L310 197L300 196L296 177z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M51 408L44 406L38 345L53 350z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M31 302L36 330L51 331L47 301z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M243 169L253 189L283 173L276 152z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M281 152L291 173L295 151z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M68 317L71 326L76 331L89 334L91 327L77 316z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M128 293L141 302L146 293L139 283z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M266 205L284 202L287 190L283 181L275 187L270 193L264 190L261 196z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M211 270L220 277L242 255L247 240L236 237L233 248z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M97 385L96 410L113 413L121 387L104 387z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M251 320L268 385L355 372L365 423L398 420L378 366L391 364L402 377L423 378L429 351L490 325L513 320L547 295L588 284L587 270L570 258L536 252L492 240L464 276z"></path>
<path class = "hotspot-default leaflet-interactive" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M535 163L501 230L534 238L555 233L573 241L599 259L606 275L608 285L627 300L655 331L655 356L653 377L672 355L685 326L687 314L695 305L698 289L702 278L702 269z"></path>
<path class = "hotspot-default leaflet-interactive hotspot-active" stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" d = "M363 280L429 268L463 250L483 223L503 190L517 162L425 84L315 133z"></path>
</g>
</svg>
Пожалуйста помоги.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Использовать это
const paths = document.querySelectorAll("path");
let i = 0;
paths.forEach(function(p){
i++;
p.setAttribute("id","a"+i);
})
Уверены ли вы? О_о
Как я уже говорил, вам не нужен идентификатор для стиля. Вы можете использовать nth-of-type или nth-child.
path:nth-of-type(1){stroke:red}
path:nth-of-type(2){stroke:green}
Также вы можете уменьшить многословие, переместив stroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd" в CSS.
path {
stroke: #3388ff;
stroke-opacity: 1;
stroke-width: 3;
stroke-linecap: round;
stroke-linejoin: round;
fill: #3388ff;
fill-opacity: 0.2;
fill-rule: evenodd;
}
path:nth-of-type(1){stroke:red}
path:nth-of-type(2){stroke:green}<svg pointer-events = "none" class = "leaflet-zoom-animated" width = "900" height = "665" viewBox = "25 60 700 500" >
<g id = "kk">
<path class = "hotspot-default leaflet-interactive" d = "M120 271L133 282L139 279L147 284L155 274L137 258z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M98 284L119 275L125 288L105 295z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M64 296L95 287L99 297L92 302L91 308L75 308L68 310z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M160 302L168 309L173 305L179 311L178 317L187 323L196 310L171 288z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M190 326L195 330L202 326L201 336L198 344L222 339L219 331L201 314z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M155 311L148 334L151 340L181 343L186 337z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M71 348L93 351L90 363L79 362L75 374L88 376L87 387L75 388L74 396L87 399L85 410L67 408z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M53 429L83 452L78 498L67 493L46 453L43 442L44 429z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M90 521L107 533L118 532L111 519L108 503L99 501L92 505z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M91 453L90 463L95 469L87 475L93 487L99 495L111 491L113 469L119 452L115 444z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M131 414L143 416L154 405L175 395L191 390L214 386L233 385L236 364L150 356L141 365z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M160 239L168 251L176 246L174 237L185 235L191 229L179 217z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M178 243L188 254L208 234L213 223L200 216z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M191 268L202 279L209 272L204 266L224 249L228 243L217 233z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M225 307L229 297L233 304L247 291L242 285L249 277L258 284L247 313L237 320z"></path>
<!--<path class = "hotspot-default leaflet-interactive" d = "M223 309L231 297L239 301L246 290L251 276L257 285L255 295L239 319z"></path>-->
<path class = "hotspot-default leaflet-interactive" d = "M274 296L281 277L328 267L332 279L330 286z"></path>
<!--<path class = "hotspot-default leaflet-interactive" d = "M303 216L317 262L324 261L327 236L322 211z"></path>-->
<path class = "hotspot-default leaflet-interactive" d = "M302 213L317 260L325 260L328 244L321 211z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M214 187L223 197L237 209L245 213L252 207L231 189L247 179L242 167z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M309 172L315 190L310 197L300 196L296 177z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M51 408L44 406L38 345L53 350z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M31 302L36 330L51 331L47 301z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M243 169L253 189L283 173L276 152z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M281 152L291 173L295 151z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M68 317L71 326L76 331L89 334L91 327L77 316z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M128 293L141 302L146 293L139 283z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M266 205L284 202L287 190L283 181L275 187L270 193L264 190L261 196z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M211 270L220 277L242 255L247 240L236 237L233 248z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M97 385L96 410L113 413L121 387L104 387z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M251 320L268 385L355 372L365 423L398 420L378 366L391 364L402 377L423 378L429 351L490 325L513 320L547 295L588 284L587 270L570 258L536 252L492 240L464 276z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M535 163L501 230L534 238L555 233L573 241L599 259L606 275L608 285L627 300L655 331L655 356L653 377L672 355L685 326L687 314L695 305L698 289L702 278L702 269z"></path>
<path class = "hotspot-default leaflet-interactive hotspot-active" d = "M363 280L429 268L463 250L483 223L503 190L517 162L425 84L315 133z"></path>
</g>
</svg>Однако, если вы все еще думаете, что вам нужно добавить `id-s в JavaScript, вот как я бы это сделал (кстати, @DogukanCavus вполне допустимо):
let paths = document.querySelectorAll(".leaflet-zoom-animated path");
paths.forEach((p,i)=>{p.id = `path${i}`})path {
stroke: #3388ff;
stroke-opacity: 1;
stroke-width: 3;
stroke-linecap: round;
stroke-linejoin: round;
fill: #3388ff;
fill-opacity: 0.2;
fill-rule: evenodd;
}
#path0{stroke:red}
#path1{stroke:green}<svg pointer-events = "none" class = "leaflet-zoom-animated" width = "900" height = "665" viewBox = "25 60 700 500" >
<g id = "kk">
<path class = "hotspot-default leaflet-interactive" d = "M120 271L133 282L139 279L147 284L155 274L137 258z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M98 284L119 275L125 288L105 295z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M64 296L95 287L99 297L92 302L91 308L75 308L68 310z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M160 302L168 309L173 305L179 311L178 317L187 323L196 310L171 288z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M190 326L195 330L202 326L201 336L198 344L222 339L219 331L201 314z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M155 311L148 334L151 340L181 343L186 337z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M71 348L93 351L90 363L79 362L75 374L88 376L87 387L75 388L74 396L87 399L85 410L67 408z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M53 429L83 452L78 498L67 493L46 453L43 442L44 429z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M90 521L107 533L118 532L111 519L108 503L99 501L92 505z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M91 453L90 463L95 469L87 475L93 487L99 495L111 491L113 469L119 452L115 444z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M131 414L143 416L154 405L175 395L191 390L214 386L233 385L236 364L150 356L141 365z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M160 239L168 251L176 246L174 237L185 235L191 229L179 217z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M178 243L188 254L208 234L213 223L200 216z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M191 268L202 279L209 272L204 266L224 249L228 243L217 233z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M225 307L229 297L233 304L247 291L242 285L249 277L258 284L247 313L237 320z"></path>
<!--<path class = "hotspot-default leaflet-interactive" d = "M223 309L231 297L239 301L246 290L251 276L257 285L255 295L239 319z"></path>-->
<path class = "hotspot-default leaflet-interactive" d = "M274 296L281 277L328 267L332 279L330 286z"></path>
<!--<path class = "hotspot-default leaflet-interactive" d = "M303 216L317 262L324 261L327 236L322 211z"></path>-->
<path class = "hotspot-default leaflet-interactive" d = "M302 213L317 260L325 260L328 244L321 211z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M214 187L223 197L237 209L245 213L252 207L231 189L247 179L242 167z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M309 172L315 190L310 197L300 196L296 177z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M51 408L44 406L38 345L53 350z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M31 302L36 330L51 331L47 301z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M243 169L253 189L283 173L276 152z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M281 152L291 173L295 151z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M68 317L71 326L76 331L89 334L91 327L77 316z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M128 293L141 302L146 293L139 283z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M266 205L284 202L287 190L283 181L275 187L270 193L264 190L261 196z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M211 270L220 277L242 255L247 240L236 237L233 248z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M97 385L96 410L113 413L121 387L104 387z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M251 320L268 385L355 372L365 423L398 420L378 366L391 364L402 377L423 378L429 351L490 325L513 320L547 295L588 284L587 270L570 258L536 252L492 240L464 276z"></path>
<path class = "hotspot-default leaflet-interactive" d = "M535 163L501 230L534 238L555 233L573 241L599 259L606 275L608 285L627 300L655 331L655 356L653 377L672 355L685 326L687 314L695 305L698 289L702 278L702 269z"></path>
<path class = "hotspot-default leaflet-interactive hotspot-active" d = "M363 280L429 268L463 250L483 223L503 190L517 162L425 84L315 133z"></path>
</g>
</svg>@enxaneta У меня все еще не работает :( Я тоже не нашел никаких ошибок консоли. Как я могу определить причину этой проблемы?
@enxaneta большое спасибо. Обтекание jQuery(window).bind("load", function() {}); заставил это работать на меня.
Вам не нужен
idдля укладки. Вы можете использовать энный тип или n-й ребенок. Также вы можете уменьшить многословие, переместивstroke = "#3388ff" stroke-opacity = "1" stroke-width = "3" stroke-linecap = "round" stroke-linejoin = "round" fill = "#3388ff" fill-opacity = "0.2" fill-rule = "evenodd"в CSS.